public DynamicBareSchema(CanonicalContainer container) { #if NETSTANDARD AssemblyBuilder assembly = AssemblyBuilder.DefineDynamicAssembly( new AssemblyName(string.Format("Effort_DynamicEntityLib({0})", Guid.NewGuid())), AssemblyBuilderAccess.Run); #else AssemblyBuilder assembly = Thread.GetDomain().DefineDynamicAssembly( new AssemblyName(string.Format("Effort_DynamicEntityLib({0})", Guid.NewGuid())), AssemblyBuilderAccess.Run); #endif ModuleBuilder entityModule = assembly.DefineDynamicModule("Entities"); foreach (EntityInfo entity in container.Entities) { TableName name = entity.TableName; Type type = CreateEntityType(entity, entityModule); this.Register(name, type); } this.dynamicAssembly = assembly; }
public DynamicBareSchema(CanonicalContainer container) { AssemblyBuilder assembly = Thread.GetDomain().DefineDynamicAssembly( new AssemblyName(string.Format("Effort_DynamicEntityLib({0})", Guid.NewGuid())), AssemblyBuilderAccess.Run); ModuleBuilder entityModule = assembly.DefineDynamicModule("Entities"); foreach (EntityInfo entity in container.Entities) { string name = entity.TableName; Type type = CreateEntityType(entity, entityModule); this.Register(name, type); } this.dynamicAssembly = assembly; }
public static DbSchema CreateDbSchema(StoreItemCollection edmStoreSchema) { EdmTypeConverter converter = new EdmTypeConverter(new DefaultTypeConverter()); CanonicalContainer container = new CanonicalContainer(edmStoreSchema, converter); IBareSchema bareSchema = new DynamicBareSchema(container); TableConfigurationGroup tableConfig = new TableConfigurationGroup(); tableConfig.Register(new BareSchemaConfiguration(bareSchema)); tableConfig.Register <PrimaryKeyConfiguration>(); tableConfig.Register <IdentityConfiguration>(); tableConfig.Register <GeneratedGuidConfiguration>(); tableConfig.Register <NotNullConfiguration>(); tableConfig.Register <VarcharLimitConfiguration>(); tableConfig.Register <CharLimitConfiguration>(); tableConfig.Register <IndexConfiguration>(); DbSchemaBuilder schemaBuilder = new DbSchemaBuilder(); foreach (EntityInfo entityInfo in container.Entities) { DbTableInfoBuilder tableBuilder = new DbTableInfoBuilder(); // Run all configurations tableConfig.Configure(entityInfo, tableBuilder); schemaBuilder.Register(tableBuilder); } RelationConfigurationGroup associationConfig = new RelationConfigurationGroup(); associationConfig.Register <RelationConfiguration>(); foreach (AssociationInfo associationInfo in container.Associations) { associationConfig.Configure(associationInfo, schemaBuilder); } return(schemaBuilder.Create()); }
public static DbSchema CreateDbSchema(StoreItemCollection edmStoreSchema) { EdmTypeConverter converter = new EdmTypeConverter(new DefaultTypeConverter()); CanonicalContainer container = new CanonicalContainer(edmStoreSchema, converter); IBareSchema bareSchema = new DynamicBareSchema(container); TableConfigurationGroup tableConfig = new TableConfigurationGroup(); tableConfig.Register(new BareSchemaConfiguration(bareSchema)); tableConfig.Register<PrimaryKeyConfiguration>(); tableConfig.Register<IdentityConfiguration>(); tableConfig.Register<GeneratedGuidConfiguration>(); tableConfig.Register<NotNullConfiguration>(); tableConfig.Register<VarcharLimitConfiguration>(); tableConfig.Register<CharLimitConfiguration>(); tableConfig.Register<IndexConfiguration>(); DbSchemaBuilder schemaBuilder = new DbSchemaBuilder(); foreach (EntityInfo entityInfo in container.Entities) { DbTableInfoBuilder tableBuilder = new DbTableInfoBuilder(); // Run all configurations tableConfig.Configure(entityInfo, tableBuilder); schemaBuilder.Register(tableBuilder); } RelationConfigurationGroup associationConfig = new RelationConfigurationGroup(); associationConfig.Register<RelationConfiguration>(); foreach (AssociationInfo associationInfo in container.Associations) { associationConfig.Configure(associationInfo, schemaBuilder); } return schemaBuilder.Create(); }