public static string ExtensionPropertyName(DataStructureExtendsInfo info) { if (info.Base.Module == info.Extension.Module) { return("Extension_" + info.Extension.Name); } return("Extension_" + info.Extension.Module.Name + "_" + info.Extension.Name); }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { DataStructureExtendsInfo info = (DataStructureExtendsInfo)conceptInfo; var extensionPropertyName = ExtensionPropertyName(info); if (DslUtility.IsQueryable(info.Extension) && DslUtility.IsQueryable(info.Base)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Extension, csPropertyName: "Base", propertyType: "Common.Queryable." + info.Base.Module.Name + "_" + info.Base.Name, additionalSetterCode: "ID = value != null ? value.ID : Guid.Empty;"); DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Base, csPropertyName: extensionPropertyName, propertyType: "Common.Queryable." + info.Extension.Module.Name + "_" + info.Extension.Name, additionalSetterCode: null); } if (info.Extension is IOrmDataStructure && info.Base is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().HasRequired(t => t.Base).WithOptional(t => t.{2});\r\n ", info.Extension.Module.Name, info.Extension.Name, extensionPropertyName), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.Extension is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.Base);\r\n ", info.Extension.Module.Name, info.Extension.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.Base is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.{2});\r\n ", info.Base.Module.Name, info.Base.Name, extensionPropertyName), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } }
private static bool ShouldCreateConstraint(DataStructureExtendsInfo info) { return(info.Extension is EntityInfo && ForeignKeyUtility.GetSchemaTableForForeignKey(info.Base) != null); }
public static string GetConstraintName(DataStructureExtendsInfo info) { return(SqlUtility.Identifier(Sql.Format("DataStructureExtendsDatabaseDefinition_ConstraintName", info.Extension.Name, info.Base.Name))); }
public static string ExtensionPropertyName(DataStructureExtendsInfo info) { return(info.ExtensionPropertyName()); }