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 36b1b97ffb..f4109b1e00 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 @@ -117,29 +117,40 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO XElement connectionElement = null; XElement optionsElement = null; - if (edmView.EDM.DesignerProperties != null) + if (edmView.EDM.DesignerProperties == null || edmView.EDM.DesignerProperties.FirstOrDefault(dp => dp.Name == "MetadataArtifactProcessing") == null) { - connectionElement = new XElement(edmxNamespace + "Connection"); - XElement designerInfoPropertyElement1 = new XElement(edmxNamespace + "DesignerInfoPropertyElement"); - connectionElement.Add(designerInfoPropertyElement1); + List standardDesignerProperties = null; - foreach (DesignerProperty designerProperty in edmView.EDM.DesignerProperties) - { - connectionElement.Add(new XElement(edmxNamespace + "DesignerProperty", - new XAttribute("Name", designerProperty.Name), - new XAttribute("Value", designerProperty.Value))); - } + if (edmView.EDM.DesignerProperties == null) + standardDesignerProperties = new List(); + else + standardDesignerProperties = edmView.EDM.DesignerProperties.ToList(); - optionsElement = new XElement(edmxNamespace + "Options"); - XElement designerInfoPropertyElement2 = new XElement(edmxNamespace + "DesignerInfoPropertyElement"); - optionsElement.Add(designerInfoPropertyElement2); + standardDesignerProperties.Add(new DesignerProperty() { Name = "MetadataArtifactProcessing", Value = "EmbedInOutputAssembly" }); - foreach (DesignerProperty designerProperty in edmView.EDM.DesignerProperties) - { - optionsElement.Add(new XElement(edmxNamespace + "DesignerProperty", - new XAttribute("Name", designerProperty.Name), - new XAttribute("Value", designerProperty.Value))); - } + edmView.EDM.DesignerProperties = standardDesignerProperties; + } + + connectionElement = new XElement(edmxNamespace + "Connection"); + XElement designerInfoPropertyElement1 = new XElement(edmxNamespace + "DesignerInfoPropertySet"); + connectionElement.Add(designerInfoPropertyElement1); + + foreach (DesignerProperty designerProperty in edmView.EDM.DesignerProperties) + { + designerInfoPropertyElement1.Add(new XElement(edmxNamespace + "DesignerProperty", + new XAttribute("Name", designerProperty.Name), + new XAttribute("Value", designerProperty.Value))); + } + + optionsElement = new XElement(edmxNamespace + "Options"); + XElement designerInfoPropertyElement2 = new XElement(edmxNamespace + "DesignerInfoPropertySet"); + optionsElement.Add(designerInfoPropertyElement2); + + foreach (DesignerProperty designerProperty in edmView.EDM.DesignerProperties) + { + designerInfoPropertyElement2.Add(new XElement(edmxNamespace + "DesignerProperty", + new XAttribute("Name", designerProperty.Name), + new XAttribute("Value", designerProperty.Value))); } XElement designerElement = new XElement(edmxNamespace + "Designer") diff --git a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/EntityModelCodeGenerator.cs b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/EntityModelCodeGenerator.cs index 88f68bd345..1a62dcee99 100644 --- a/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/EntityModelCodeGenerator.cs +++ b/src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/EntityModelCodeGenerator.cs @@ -42,7 +42,7 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO EntityCodeGenerator entityCodeGenerator = new EntityCodeGenerator(languageToGenerateCode); IList edmSchemaErrors = entityCodeGenerator.GenerateCode(tempFileName, outputFileName); File.Delete(tempFileName); - + context.EnsureOutputFileIsInProject(item, outputFileName); }