diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Addin/Templates/Files/CSharp.EDMX.xft b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Addin/Templates/Files/CSharp.EDMX.xft
index 21de3a637e..d4a76a3972 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Addin/Templates/Files/CSharp.EDMX.xft
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Addin/Templates/Files/CSharp.EDMX.xft
@@ -20,7 +20,9 @@
${Path} -> Full path of the file
-->
-
+
+
+
@@ -32,8 +34,8 @@
-]]>
-
+]]>
+
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/UserControls/DatabaseTreeViewResources.xaml b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/UserControls/DatabaseTreeViewResources.xaml
index bf1a88234b..b9b4f62e4e 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/UserControls/DatabaseTreeViewResources.xaml
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/UserControls/DatabaseTreeViewResources.xaml
@@ -59,6 +59,9 @@
+
+
+
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/DatabaseObjectBase.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/DatabaseObjectBase.cs
index 4a18810078..16f69b2b7d 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/DatabaseObjectBase.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/DatabaseObjectBase.cs
@@ -39,7 +39,7 @@ namespace ICSharpCode.Data.Core.DatabaseObjects
}
}
- public bool IsSelected
+ public virtual bool IsSelected
{
get { return _isSelected; }
set
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Table.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Table.cs
index 2018877893..080a289428 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Table.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Table.cs
@@ -61,6 +61,29 @@ namespace ICSharpCode.Data.Core.DatabaseObjects
get { return string.Format("[{0}].[{1}]", _schemaName, _tableName); }
}
+ public bool HasKeyDefined
+ {
+ get
+ {
+ if (Items.FirstOrDefault(column => column.IsPrimaryKey) != null)
+ return true;
+ else
+ return false;
+ }
+ }
+
+ public override bool IsSelected
+ {
+ get
+ {
+ if (HasKeyDefined || GetType().GetInterface("IView") != null)
+ return base.IsSelected;
+ else
+ return false;
+ }
+ set { base.IsSelected = value; }
+ }
+
#endregion
#region IDatabaseObjectBase Members
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/View.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/View.cs
index efbc68f778..4dbf061d69 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/View.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/View.cs
@@ -12,5 +12,24 @@ namespace ICSharpCode.Data.Core.DatabaseObjects
{
public class View : Table, IView
{
+ #region Fields
+
+ private string _definingQuery = string.Empty;
+
+ #endregion
+
+ #region Properties
+
+ public string DefiningQuery
+ {
+ get { return _definingQuery; }
+ set
+ {
+ _definingQuery = value;
+ OnPropertyChanged("DefiningQuery");
+ }
+ }
+
+ #endregion
}
}
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/ITable.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/ITable.cs
index a27ae727fd..782fe27be3 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/ITable.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/ITable.cs
@@ -16,5 +16,6 @@ namespace ICSharpCode.Data.Core.Interfaces
string TableName { get; set; }
string SchemaName { get; set; }
DatabaseObjectsCollection Constraints { get; }
+ bool HasKeyDefined { get; }
}
}
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/IView.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/IView.cs
index 140d1bf2c0..c445f38813 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/IView.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/IView.cs
@@ -11,5 +11,6 @@ namespace ICSharpCode.Data.Core.Interfaces
{
public interface IView : ITable
{
+ string DefiningQuery { get; set; }
}
}
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/DisplayBinding/EDMDesignerViewContent.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/DisplayBinding/EDMDesignerViewContent.cs
index ff1cfd3770..30e7dde7c1 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/DisplayBinding/EDMDesignerViewContent.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/DisplayBinding/EDMDesignerViewContent.cs
@@ -94,34 +94,40 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
{
Debug.Assert(file == this.PrimaryFile);
+ // Load EDMX from stream
XElement edmxElement = null;
Action readMoreAction = edmxElt => edmxElement = edmxElt;
_edmView = new EDMView(stream, readMoreAction);
+ // If EDMX is empty run EDM Wizard
if (_edmView.EDM.IsEmpty)
{
- edmxElement = null;
- EDMWizardWindow wizard = RunWizard(file);
-
- if (wizard.DialogResult == true)
- {
- _edmView = new EDMView(wizard.EDMXDocument, readMoreAction);
- //wizard.EDMXDocument.Save("C:\\temp\\test.edmx");
- }
+ edmxElement = null;
+ EDMWizardWindow wizard = RunWizard(file);
+
+ if (wizard.DialogResult == true)
+ _edmView = new EDMView(wizard.EDMXDocument, readMoreAction);
}
+ // Load or generate DesignerView and EntityTypeDesigners
EntityTypeDesigner.Init = true;
+ if (edmxElement.Element("DesignerViews") == null)
+ edmxElement = new XElement("Designer", DesignerIO.GenerateNewDesignerViewsFromCSDLView(_edmView.CSDL));
+
if (edmxElement != null && edmxElement.Element("DesignerViews") != null)
- DesignerIO.Read(_edmView, edmxElement.Element("DesignerViews"), entityType => new EntityTypeDesigner(entityType), complexType => new ComplexTypeDesigner(complexType));
+ DesignerIO.Read(_edmView, edmxElement.Element("DesignerViews"), entityType => new EntityTypeDesigner(entityType), complexType => new ComplexTypeDesigner(complexType));
EntityTypeDesigner.Init = false;
- //VisualHelper.DoEvents();
+ // Call DoEvents, otherwise drawing associations can fail
+ VisualHelper.DoEvents();
+ // Gets the designer canvas
_designerCanvas = DesignerCanvas.GetDesignerCanvas(this, _edmView, _edmView.DesignerViews.FirstOrDefault());
- _scrollViewer.Content = _designerCanvas;
+ _scrollViewer.Content = _designerCanvas;
+ // Register CSDL of EDMX in CSDL DatabaseTreeView
CSDLDatabaseTreeViewAdditionalNode.Instance.CSDLViews.Add(_edmView.CSDL);
}
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/CSDLType/TypeBaseDesigner.xaml.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/CSDLType/TypeBaseDesigner.xaml.cs
index db4333c698..e622578b25 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/CSDLType/TypeBaseDesigner.xaml.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/CSDLType/TypeBaseDesigner.xaml.cs
@@ -16,6 +16,7 @@ using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL.Property;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL.Type;
using ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Common;
using ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.Relations;
+using ICSharpCode.Data.Core.UI;
#endregion
@@ -197,6 +198,11 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.UserControls.CSDLType
internal ListViewItem GetListViewItem(NavigationProperty navigationProperty, out int index)
{
+ foreach (ListViewItem lvia in VisualTreeHelperUtil.GetControlsDecendant(propertiesListView))
+ {
+ lvia.ToString();
+ }
+
var value = (from lvi in VisualTreeHelperUtil.GetControlsDecendant(propertiesListView)
let uiRelatedProperty = lvi.Content as UIRelatedProperty
where uiRelatedProperty != null
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/DesignerCanvas.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/DesignerCanvas.cs
index 2d703ab621..dcc74bb391 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/DesignerCanvas.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/UserControls/DesignerCanvas.cs
@@ -71,15 +71,15 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.UserControls
var designerView = (DesignerView)e.NewValue;
foreach (TypeBaseDesigner typeBaseDesigner in designerView)
designerCanvas.Children.Add(typeBaseDesigner);
- designerCanvas.Loaded +=
- delegate
- {
- VisualHelper.DoEvents();
+ //designerCanvas.Loaded +=
+ // delegate
+ // {
+ // VisualHelper.DoEvents();
- foreach (TypeBaseDesigner typeBaseDesigner in designerView)
- typeBaseDesigner.DrawRelations();
- designerCanvas.Zoom = designerView.Zoom;
- };
+ // foreach (TypeBaseDesigner typeBaseDesigner in designerView)
+ // typeBaseDesigner.DrawRelations();
+ // designerCanvas.Zoom = designerView.Zoom;
+ // };
}));
private static Dictionary _designerCanvas = new Dictionary();
@@ -88,18 +88,25 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.UserControls
{
DesignerCanvas designerCanvas = null;
- if (designerView == null)
- {
- designerView = new DesignerView();
- designerView.ArrangeTypeDesigners = true;
- designerView.Name = edmView.Name;
- designerView.Zoom = 100;
+ //if (designerView == null)
+ //{
+ // EntityTypeDesigner.Init = true;
- foreach(UIEntityType entityType in edmView.CSDL.EntityTypes)
- {
- designerView.AddTypeDesigner(new EntityTypeDesigner(entityType) { IsExpanded = true });
- }
- }
+ // designerView = new DesignerView();
+ // designerView.ArrangeTypeDesigners = true;
+ // designerView.Name = edmView.Name;
+ // designerView.Zoom = 100;
+
+ // if (edmView.CSDL.CSDL != null)
+ // {
+ // foreach (UIEntityType entityType in edmView.CSDL.EntityTypes)
+ // {
+ // designerView.AddTypeDesigner(new EntityTypeDesigner(entityType) { IsExpanded = true });
+ // }
+ // }
+
+ // EntityTypeDesigner.Init = false;
+ //}
if (designerView != null && _designerCanvas.ContainsKey(designerView))
{
@@ -314,29 +321,38 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.UserControls
}
private void DesignerCanvas_Loaded(object sender, RoutedEventArgs e)
- {
+ {
if (DesignerView.ArrangeTypeDesigners)
{
double left = 20, top = 20;
double currentRowsMaxHeight = 0;
-
+
+ EntityTypeDesigner.Init = true;
+
foreach(EntityTypeDesigner entityTypeDesigner in DesignerView.TypeDesignersLocations)
{
- entityTypeDesigner.Left = left;
- entityTypeDesigner.Top = top;
+ entityTypeDesigner.Left = left;
+ entityTypeDesigner.Top = top;
- if (entityTypeDesigner.ActualHeight > currentRowsMaxHeight)
- currentRowsMaxHeight = entityTypeDesigner.ActualHeight;
+ if (entityTypeDesigner.ActualHeight > currentRowsMaxHeight)
+ currentRowsMaxHeight = entityTypeDesigner.ActualHeight;
- left += entityTypeDesigner.ActualWidth + 20;
+ left += entityTypeDesigner.ActualWidth + 20;
- if (left > ActualWidth)
- {
- top += currentRowsMaxHeight + 20;
- left = 20;
- }
+ if (left > ActualWidth)
+ {
+ top += currentRowsMaxHeight + 20;
+ left = 20;
+ }
}
+
+ EntityTypeDesigner.Init = false;
}
+
+ foreach (TypeBaseDesigner typeBaseDesigner in DesignerView)
+ typeBaseDesigner.DrawRelations();
+
+ (sender as DesignerCanvas).Zoom = DesignerView.Zoom;
}
protected override void OnPreviewMouseDown(MouseButtonEventArgs e)
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/Common/UIBusinessType.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/Common/UIBusinessType.cs
index 56ea9d8c9c..b9977d4c92 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/Common/UIBusinessType.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/Common/UIBusinessType.cs
@@ -27,19 +27,12 @@ namespace ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.Common
public BusinessType BusinessInstance { get; private set; }
- public virtual string Name
+ public override string Name
{
get { return BusinessInstance.Name; }
set { BusinessInstance.Name = value; }
}
- protected virtual void OnPropertyChanged(string propertyName)
- {
- if (PropertyChanged != null)
- PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
- }
- public event PropertyChangedEventHandler PropertyChanged;
-
public override string ToString()
{
return Name;
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/DesignerIO.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/DesignerIO.cs
index 5dab974995..7350a6a14d 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/DesignerIO.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/DesignerIO.cs
@@ -7,6 +7,7 @@ using System.Windows;
using System.Xml.Linq;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL.Type;
+using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL;
#endregion
@@ -26,12 +27,25 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
public static DesignerView Read(EDMView edmView, Func createEntityDesignerFromUIType, Func createComplexDesignerFromUIType, XElement designerViewXElement)
{
- var designerView = new DesignerView { Name = designerViewXElement.Attribute("Name").Value, Zoom = int.Parse(designerViewXElement.Attribute("Zoom").Value) };
+ var designerView = new DesignerView()
+ {
+ Name = designerViewXElement.Attribute("Name").Value,
+ Zoom = int.Parse(designerViewXElement.Attribute("Zoom").Value)
+ };
+
+ var arrange = designerViewXElement.Attribute("Arrange");
+
+ if (arrange != null)
+ designerView.ArrangeTypeDesigners = bool.Parse(arrange.Value);
+
foreach (var designerTypeXElement in designerViewXElement.Elements("DesignerType"))
{
var name = designerTypeXElement.Attribute("Name").Value;
+
ITypeDesigner typeDesigner;
+
var entityType = edmView.CSDL.EntityTypes.FirstOrDefault(et => et.Name == name);
+
if (entityType != null)
typeDesigner = createEntityDesignerFromUIType(entityType);
else
@@ -41,13 +55,19 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
continue;
typeDesigner = createComplexDesignerFromUIType(complexType);
}
+
var leftAttribute = designerTypeXElement.Attribute("Left").Value;
+
if (leftAttribute != null)
typeDesigner.Left = double.Parse(leftAttribute, CultureInfo.InvariantCulture);
+
var topAttribute = designerTypeXElement.Attribute("Top").Value;
+
if (topAttribute != null)
typeDesigner.Top = double.Parse(topAttribute, CultureInfo.InvariantCulture);
+
var isExpandedAttribute = designerTypeXElement.Attribute("IsExpanded");
+
if (isExpandedAttribute != null)
{
RoutedEventHandler loaded = null;
@@ -58,9 +78,22 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
};
typeDesigner.Loaded += loaded;
}
+
designerView.TypeDesignersLocations.Add(typeDesigner);
}
return designerView;
}
+
+ public static XElement GenerateNewDesignerViewsFromCSDLView(CSDLView csdl)
+ {
+ XElement designerView = new XElement("DesignerView", new XAttribute("Name", "View"), new XAttribute("Zoom", 100), new XAttribute("Arrange", true));
+
+ foreach (UIEntityType entityType in csdl.EntityTypes)
+ {
+ designerView.Add(new XElement("DesignerType", new XAttribute("Name", entityType.Name), new XAttribute("Top", 0), new XAttribute("Left", 0), new XAttribute("IsExpanded", true)));
+ }
+
+ return new XElement("DesignerViews", designerView);
+ }
}
}
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/SSDLIO.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/SSDLIO.cs
index 598ea1448a..06599e343a 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/SSDLIO.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/SSDLIO.cs
@@ -60,9 +60,17 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
foreach (Association association in ssdlContainer.AssociationSets)
{
XElement associationSet = new XElement(ssdlNamespace + "AssociationSet",
- new XAttribute("Name", association.AssociationSetName), new XAttribute("Association", string.Concat(entityContainerNamespace, association.Name)),
+ new XAttribute("Name", association.AssociationSetName), new XAttribute("Association", string.Concat(entityContainerNamespace, association.Name)));
+
+ string role2Name = association.Role2.Name;
+
+ // If the assocation end properties are the same properties
+ if (association.Role1.Name == association.Role2.Name && association.Role1.Type.Name == association.Role2.Type.Name)
+ role2Name += "1";
+
+ associationSet.Add(
new XElement(ssdlNamespace + "End", new XAttribute("Role", association.Role1.Name), new XAttribute("EntitySet", association.Role1.Type.Name)),
- new XElement(ssdlNamespace + "End", new XAttribute("Role", association.Role2.Name), new XAttribute("EntitySet", association.Role2.Type.Name)));
+ new XElement(ssdlNamespace + "End", new XAttribute("Role", role2Name), new XAttribute("EntitySet", association.Role2.Type.Name)));
entityContainer.Add(associationSet);
}
@@ -105,14 +113,26 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
foreach (Association association in ssdlContainer.AssociationSets)
{
+ string role2Name = association.Role2.Name;
+
+ // If the assocation end properties are the same properties
+ if (association.Role1.Name == association.Role2.Name && association.Role1.Type.Name == association.Role2.Type.Name)
+ role2Name += "1";
+
XElement associationElement = new XElement(ssdlNamespace + "Association", new XAttribute("Name", association.Name),
new XElement(ssdlNamespace + "End", new XAttribute("Role", association.Role1.Name), new XAttribute("Type", string.Concat(entityContainerNamespace, association.Role1.Type.Name)), new XAttribute("Multiplicity", CardinalityStringConverter.CardinalityToSTring(association.Role1.Cardinality))),
- new XElement(ssdlNamespace + "End", new XAttribute("Role", association.Role2.Name), new XAttribute("Type", string.Concat(entityContainerNamespace, association.Role2.Type.Name)), new XAttribute("Multiplicity", CardinalityStringConverter.CardinalityToSTring(association.Role2.Cardinality))));
+ new XElement(ssdlNamespace + "End", new XAttribute("Role", role2Name), new XAttribute("Type", string.Concat(entityContainerNamespace, association.Role2.Type.Name)), new XAttribute("Multiplicity", CardinalityStringConverter.CardinalityToSTring(association.Role2.Cardinality))));
+
+ string dependantRoleName = association.DependantRole.Name;
+
+ // If the assocation end properties are the same properties
+ if (association.PrincipalRole.Name == association.DependantRole.Name && association.PrincipalRole.Type.Name == association.DependantRole.Type.Name)
+ dependantRoleName += "1";
associationElement.Add(new XElement(ssdlNamespace + "ReferentialConstraint",
new XElement(ssdlNamespace + "Principal", new XAttribute("Role", association.PrincipalRole.Name),
new XElement(ssdlNamespace + "PropertyRef", new XAttribute("Name", association.PrincipalRole.Property.Name))),
- new XElement(ssdlNamespace + "Dependent", new XAttribute("Role", association.DependantRole.Name),
+ new XElement(ssdlNamespace + "Dependent", new XAttribute("Role", dependantRoleName),
new XElement(ssdlNamespace + "PropertyRef", new XAttribute("Name", association.DependantRole.Property.Name)))));
schema.Add(associationElement);
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/EDMConverter.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/EDMConverter.cs
index 43b6547dbc..0212d54cb0 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/EDMConverter.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/EDMConverter.cs
@@ -48,8 +48,6 @@ namespace ICSharpCode.Data.EDMDesigner.Core.ObjectModelConverters
string edmGenPath = RuntimeEnvironment.GetRuntimeDirectory() + "\\EdmGen.exe";
edmGenPath = @"C:\Windows\Microsoft.NET\Framework\v3.5\EdmGen.exe";
- StreamReader streamReader = null;
-
Process process = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.WorkingDirectory = Path.GetTempPath();
diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/SSDLConverter.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/SSDLConverter.cs
index 7cf1586414..1b29a47a90 100644
--- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/SSDLConverter.cs
+++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/SSDLConverter.cs
@@ -36,7 +36,7 @@ namespace ICSharpCode.Data.EDMDesigner.Core.ObjectModelConverters
{
if (!table.IsSelected)
continue;
-
+
EntityType entityType = CreateSSDLEntityType(table);
ssdlContainer.EntityTypes.Add(entityType);
@@ -79,7 +79,10 @@ namespace ICSharpCode.Data.EDMDesigner.Core.ObjectModelConverters
};
if (table is IView)
+ {
entityType.StoreType = StoreType.Views;
+ entityType.DefiningQuery = (table as IView).DefiningQuery;
+ }
else
entityType.StoreType = StoreType.Tables;
@@ -175,7 +178,7 @@ namespace ICSharpCode.Data.EDMDesigner.Core.ObjectModelConverters
{
Name = constraint.FKTableName,
Cardinality = (Cardinality)constraint.FKCardinality
- };
+ };
Property role2Property = CreateSSDLProperty(constraint.FKColumn, CreateSSDLEntityType(constraint.FKTable));
role2.Property = role2Property;