internal void Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) { DebugCheck.NotNull(databaseMapping); DebugCheck.NotNull(providerManifest); foreach (var structuralTypeConfiguration in databaseMapping.Model.ComplexTypes .Select(ct => ct.GetConfiguration()) .Cast <StructuralTypeConfiguration>() .Where(c => c != null)) { structuralTypeConfiguration.ConfigurePropertyMappings( databaseMapping.GetComplexPropertyMappings(structuralTypeConfiguration.ClrType).ToList(), providerManifest); } ConfigureEntityTypes(databaseMapping, databaseMapping.Model.Container.EntitySets, providerManifest); RemoveRedundantColumnConditions(databaseMapping); RemoveRedundantTables(databaseMapping); ConfigureTables(databaseMapping.Database); ConfigureDefaultSchema(databaseMapping); UniquifyFunctionNames(databaseMapping); ConfigureFunctionParameters(databaseMapping); RemoveDuplicateTphColumns(databaseMapping); }
public void GetComplexPropertyMappings_should_return_all_complex_property_mappings_for_type() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel(DataSpace.CSpace), new EdmModel(DataSpace.SSpace)); var entitySet = new EntitySet { Name = "ES" }; var entitySetMapping = databaseMapping.AddEntitySetMapping(entitySet); var entityTypeMapping = new EntityTypeMapping(null); entitySetMapping.AddTypeMapping(entityTypeMapping); var entityTypeMappingFragment = new MappingFragment(entitySet, entityTypeMapping, false); entityTypeMapping.AddFragment(entityTypeMappingFragment); var complexType = new ComplexType("C"); var propertyMapping1 = new ColumnMappingBuilder( new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), new[] { EdmProperty.CreateComplex("P1", complexType), EdmProperty.CreatePrimitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)) }); var type = typeof(object); complexType.GetMetadataProperties().SetClrType(type); entityTypeMappingFragment.AddColumnMapping(propertyMapping1); var propertyMapping2 = new ColumnMappingBuilder( new EdmProperty("C", TypeUsage.Create(new PrimitiveType() { DataSpace = DataSpace.SSpace })), new List <EdmProperty> { EdmProperty.CreateComplex("P3", complexType), EdmProperty.CreatePrimitive( "P2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)), }); entityTypeMappingFragment.AddColumnMapping(propertyMapping2); Assert.Equal(2, databaseMapping.GetComplexPropertyMappings(typeof(object)).Count()); }
internal void Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) { DebugCheck.NotNull(databaseMapping); DebugCheck.NotNull(providerManifest); foreach (var structuralTypeConfiguration in databaseMapping.Model.GetComplexTypes() .Select(ct => ct.GetConfiguration()) .Cast <StructuralTypeConfiguration>() .Where(c => c != null)) { structuralTypeConfiguration.Configure( databaseMapping.GetComplexPropertyMappings(structuralTypeConfiguration.ClrType), providerManifest); } ConfigureEntityTypes(databaseMapping, providerManifest); RemoveRedundantColumnConditions(databaseMapping); RemoveRedundantTables(databaseMapping); ConfigureTables(databaseMapping.Database); ConfigureDefaultSchema(databaseMapping); }
internal void Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) { foreach (StructuralTypeConfiguration typeConfiguration in databaseMapping.Model.ComplexTypes.Select <ComplexType, object>((Func <ComplexType, object>)(ct => ct.GetConfiguration())).Cast <StructuralTypeConfiguration>().Where <StructuralTypeConfiguration>((Func <StructuralTypeConfiguration, bool>)(c => c != null))) { typeConfiguration.ConfigurePropertyMappings((IList <Tuple <ColumnMappingBuilder, EntityType> >)databaseMapping.GetComplexPropertyMappings(typeConfiguration.ClrType).ToList <Tuple <ColumnMappingBuilder, EntityType> >(), providerManifest, false); } this.ConfigureEntityTypes(databaseMapping, (ICollection <EntitySet>)databaseMapping.Model.Container.EntitySets, providerManifest); System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.RemoveRedundantColumnConditions(databaseMapping); System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.RemoveRedundantTables(databaseMapping); System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureTables(databaseMapping.Database); this.ConfigureDefaultSchema(databaseMapping); System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.UniquifyFunctionNames(databaseMapping); System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureFunctionParameters(databaseMapping); System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.RemoveDuplicateTphColumns(databaseMapping); }