public void Generate_can_map_a_simple_entity_type_and_set() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); var type = typeof(object); entityType.Annotations.SetClrType(type); var property = EdmProperty.Primitive("P1", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType.AddMember(property); var property1 = EdmProperty.Primitive("P2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType.AddMember(property1); var entitySet = model.AddEntitySet("ESet", entityType); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet); Assert.NotNull(entitySetMapping); Assert.Same(entitySet, entitySetMapping.EntitySet); var entityTypeMapping = entitySetMapping.EntityTypeMappings.Single(); Assert.Same(entityType, entityTypeMapping.EntityType); Assert.NotNull(entityTypeMapping.MappingFragments.Single().Table); Assert.Equal("E", entityTypeMapping.MappingFragments.Single().Table.Name); Assert.Equal(2, entityTypeMapping.MappingFragments.Single().Table.Properties.Count); Assert.Equal(typeof(object), entityTypeMapping.GetClrType()); }
public void Generate_should_correctly_map_string_primitive_property_facets() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); entityType.SetClrType(typeof(object)); model.AddEntitySet("ESet", entityType); var property = entityType.AddPrimitiveProperty("P"); property.PropertyType.EdmType = EdmPrimitiveType.String; property.PropertyType.IsNullable = false; property.PropertyType.PrimitiveTypeFacets.IsFixedLength = true; property.PropertyType.PrimitiveTypeFacets.IsMaxLength = true; property.PropertyType.PrimitiveTypeFacets.IsUnicode = true; property.PropertyType.PrimitiveTypeFacets.MaxLength = 42; property.PropertyType.PrimitiveTypeFacets.Precision = 23; property.PropertyType.PrimitiveTypeFacets.Scale = 77; property.SetStoreGeneratedPattern(DbStoreGeneratedPattern.Identity); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var column = databaseMapping.GetEntityTypeMapping(entityType).TypeMappingFragments.Single().PropertyMappings.Single().Column; Assert.False(column.IsNullable); Assert.Null(column.Facets.IsFixedLength); Assert.Equal(true, column.Facets.IsMaxLength); Assert.Null(column.Facets.IsUnicode); Assert.Equal(42, column.Facets.MaxLength); Assert.Null(column.Facets.Precision); Assert.Null(column.Facets.Scale); Assert.Equal(DbStoreGeneratedPattern.Identity, column.StoreGeneratedPattern); }
public void Generate_maps_abstract_type_hierarchies_correctly() { var model = new EdmModel().Initialize(); var rootEntityType = model.AddEntityType("E"); rootEntityType.Annotations.SetClrType(typeof(object)); var property0 = EdmProperty.Primitive("P1", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); rootEntityType.AddMember(property0); rootEntityType.AddKeyMember(rootEntityType.Properties.First()); var property1 = EdmProperty.Primitive("P2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); rootEntityType.AddMember(property1); model.AddEntitySet("ESet", rootEntityType); var entityType2 = model.AddEntityType("E2"); var property2 = EdmProperty.Primitive("P3", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType2.AddMember(property2); entityType2.Annotations.SetClrType(typeof(string)); entityType2.Abstract = true; entityType2.BaseType = rootEntityType; var entityType3 = model.AddEntityType("E3"); entityType3.Annotations.SetClrType(typeof(int)); var property3 = EdmProperty.Primitive("P4", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType3.AddMember(property3); entityType3.BaseType = entityType2; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entityType1Mapping = databaseMapping.GetEntityTypeMapping(rootEntityType); var entityType3Mapping = databaseMapping.GetEntityTypeMapping(entityType3); Assert.Equal(2, entityType1Mapping.MappingFragments.Single().ColumnMappings.Count()); Assert.Equal("P1", entityType1Mapping.MappingFragments.Single().ColumnMappings.ElementAt(0).ColumnProperty.Name); Assert.Equal("P2", entityType1Mapping.MappingFragments.Single().ColumnMappings.ElementAt(1).ColumnProperty.Name); Assert.Equal(4, entityType3Mapping.MappingFragments.Single().ColumnMappings.Count()); Assert.Equal("P1", entityType3Mapping.MappingFragments.Single().ColumnMappings.ElementAt(0).ColumnProperty.Name); Assert.Equal("P2", entityType3Mapping.MappingFragments.Single().ColumnMappings.ElementAt(1).ColumnProperty.Name); Assert.Equal("P3", entityType3Mapping.MappingFragments.Single().ColumnMappings.ElementAt(2).ColumnProperty.Name); Assert.Equal("P4", entityType3Mapping.MappingFragments.Single().ColumnMappings.ElementAt(3).ColumnProperty.Name); var table = entityType1Mapping.MappingFragments.Single().Table; Assert.Equal(5, table.Properties.Count); }
public void Configure_should_configure_modification_functions() { var model = new EdmModel(DataSpace.CSpace); var entityType = model.AddEntityType("E"); entityType.GetMetadataProperties().SetClrType(typeof(object)); model.AddEntitySet("ESet", entityType); var modificationFunctionsConfigurationMock = new Mock <ModificationStoredProceduresConfiguration>(); var entityTypeConfiguration = new EntityTypeConfiguration(typeof(object)); entityTypeConfiguration.MapToStoredProcedures(modificationFunctionsConfigurationMock.Object, true); entityType.SetConfiguration(entityTypeConfiguration); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderInfo, ProviderRegistry.Sql2008_ProviderManifest).Generate(model); entityTypeConfiguration.Configure(entityType, databaseMapping, ProviderRegistry.Sql2008_ProviderManifest); modificationFunctionsConfigurationMock .Verify( m => m.Configure( It.IsAny <EntityTypeModificationFunctionMapping>(), It.IsAny <DbProviderManifest>()), Times.Once()); }
public void Generate_can_map_type_hierarchies_using_Tph() { var model = new EdmModel().Initialize(); var rootEntityType = model.AddEntityType("E"); var type = typeof(object); rootEntityType.Annotations.SetClrType(type); var property = EdmProperty.Primitive("P1", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); rootEntityType.AddMember(property); var property1 = EdmProperty.Primitive("P2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); rootEntityType.AddMember(property1); var entitySet = model.AddEntitySet("ESet", rootEntityType); var entityType2 = model.AddEntityType("E2"); var property2 = EdmProperty.Primitive("P3", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType2.AddMember(property2); var type1 = typeof(string); entityType2.Annotations.SetClrType(type1); entityType2.BaseType = rootEntityType; var entityType3 = model.AddEntityType("E3"); var type2 = typeof(int); entityType3.Annotations.SetClrType(type2); var property3 = EdmProperty.Primitive("P4", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType3.AddMember(property3); entityType3.BaseType = entityType2; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet); Assert.NotNull(entitySetMapping); var entityTypeMappings = entitySetMapping.EntityTypeMappings; Assert.Equal(3, entityTypeMappings.Count()); var entityType1Mapping = databaseMapping.GetEntityTypeMapping(rootEntityType); var entityType2Mapping = databaseMapping.GetEntityTypeMapping(entityType2); var entityType3Mapping = databaseMapping.GetEntityTypeMapping(entityType3); Assert.Equal(2, entityType1Mapping.MappingFragments.Single().ColumnMappings.Count()); Assert.Equal(3, entityType2Mapping.MappingFragments.Single().ColumnMappings.Count()); Assert.Equal(4, entityType3Mapping.MappingFragments.Single().ColumnMappings.Count()); var table = entityType1Mapping.MappingFragments.Single().Table; Assert.Same(table, entityType2Mapping.MappingFragments.Single().Table); Assert.Same(table, entityType3Mapping.MappingFragments.Single().Table); Assert.Equal(5, table.Properties.Count); Assert.Equal("P1", table.Properties[0].Name); Assert.Equal("P2", table.Properties[1].Name); Assert.Equal("P3", table.Properties[2].Name); Assert.Equal("P4", table.Properties[3].Name); Assert.Equal("Discriminator", table.Properties[4].Name); }
public void Generate_should_initialize_mapping_model() { var model = new EdmModel().Initialize(); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); Assert.NotNull(databaseMapping); Assert.NotNull(databaseMapping.Database); Assert.Same(model.Containers.Single(), databaseMapping.EntityContainerMappings.Single().EdmEntityContainer); }
public void Generate_should_initialize_mapping_model() { var model = new EdmModel().Initialize(); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); Assert.NotNull(databaseMapping); Assert.NotNull(databaseMapping.Database); Assert.Same(model.Containers.Single(), databaseMapping.EntityContainerMappings.Single().EntityContainer); }
public void Generate_can_map_foreign_key_association_type() { var model = new EdmModel().Initialize(); var principalEntityType = model.AddEntityType("P"); principalEntityType.Annotations.SetClrType(typeof(object)); var dependentEntityType = model.AddEntityType("D"); dependentEntityType.Annotations.SetClrType(typeof(string)); var dependentProperty1 = EdmProperty.Primitive("FK1", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)); dependentProperty1.Nullable = false; dependentEntityType.AddMember(dependentProperty1); var dependentProperty2 = EdmProperty.Primitive("FK2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); dependentEntityType.AddMember(dependentProperty2); model.AddEntitySet("PSet", principalEntityType); model.AddEntitySet("DSet", dependentEntityType); var associationType = model.AddAssociationType( "P_D", principalEntityType, RelationshipMultiplicity.One, dependentEntityType, RelationshipMultiplicity.Many); associationType.Constraint = new ReferentialConstraint( associationType.SourceEnd, associationType.TargetEnd, principalEntityType.DeclaredKeyProperties, new[] { dependentProperty1, dependentProperty2 }); associationType.SourceEnd.DeleteBehavior = OperationAction.Cascade; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var dependentTable = databaseMapping.GetEntityTypeMapping(dependentEntityType).MappingFragments.Single().Table; var foreignKeyConstraint = dependentTable.ForeignKeyBuilders.Single(); Assert.Equal(2, dependentTable.Properties.Count()); Assert.Equal(2, foreignKeyConstraint.DependentColumns.Count()); Assert.Equal(OperationAction.Cascade, foreignKeyConstraint.DeleteAction); Assert.Equal(associationType.Name, foreignKeyConstraint.Name); var foreignKeyColumn = foreignKeyConstraint.DependentColumns.First(); Assert.False(foreignKeyColumn.Nullable); Assert.Equal("FK1", foreignKeyColumn.Name); }
public void Generate_can_map_independent_association_type() { var model = new EdmModel().Initialize(); var principalEntityType = model.AddEntityType("P"); var type = typeof(object); principalEntityType.Annotations.SetClrType(type); var property = EdmProperty.Primitive("Id1", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); principalEntityType.AddMember(property); var idProperty1 = property; principalEntityType.AddKeyMember(idProperty1); var property1 = EdmProperty.Primitive("Id2", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); principalEntityType.AddMember(property1); var idProperty2 = property1; principalEntityType.AddKeyMember(idProperty2); var dependentEntityType = model.AddEntityType("D"); var type1 = typeof(string); dependentEntityType.Annotations.SetClrType(type1); model.AddEntitySet("PSet", principalEntityType); model.AddEntitySet("DSet", dependentEntityType); var associationType = model.AddAssociationType( "P_D", principalEntityType, RelationshipMultiplicity.One, dependentEntityType, RelationshipMultiplicity.Many); model.AddAssociationSet("P_DSet", associationType); associationType.SourceEnd.DeleteBehavior = OperationAction.Cascade; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var foreignKeyConstraint = databaseMapping.GetEntityTypeMapping(dependentEntityType).MappingFragments.Single().Table.ForeignKeyBuilders.Single(); Assert.Equal(2, foreignKeyConstraint.DependentColumns.Count()); Assert.Equal(associationType.Name, foreignKeyConstraint.Name); Assert.Equal(1, databaseMapping.EntityContainerMappings.Single().AssociationSetMappings.Count()); Assert.Equal(OperationAction.Cascade, foreignKeyConstraint.DeleteAction); var foreignKeyColumn = foreignKeyConstraint.DependentColumns.First(); Assert.False(foreignKeyColumn.Nullable); Assert.Equal("P_Id1", foreignKeyColumn.Name); }
public void Generate_should_correctly_map_time_primitive_property_facets() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); var type = typeof(object); entityType.Annotations.SetClrType(type); model.AddEntitySet("ESet", entityType); var property = EdmProperty .Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Time)); entityType.AddMember(property); property.Nullable = false; property.IsFixedLength = true; property.IsMaxLength = true; property.IsUnicode = false; property.MaxLength = 42; property.Precision = 23; property.Scale = 77; property.SetStoreGeneratedPattern(StoreGeneratedPattern.Identity); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var column = databaseMapping.GetEntityTypeMapping(entityType).MappingFragments.Single().ColumnMappings.Single().ColumnProperty; Assert.False(column.Nullable); Assert.Null(column.IsFixedLength); Assert.False(column.IsMaxLength); Assert.Null(column.IsUnicode); Assert.Null(column.MaxLength); Assert.Equal <byte?>(23, column.Precision); Assert.Null(column.Scale); Assert.Equal(StoreGeneratedPattern.Identity, column.StoreGeneratedPattern); }
public void Generate_can_map_a_simple_entity_type_and_set() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); entityType.SetClrType(typeof(object)); entityType.AddPrimitiveProperty("P1").PropertyType.EdmType = EdmPrimitiveType.Int32; entityType.AddPrimitiveProperty("P2").PropertyType.EdmType = EdmPrimitiveType.String; var entitySet = model.AddEntitySet("ESet", entityType); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet); Assert.NotNull(entitySetMapping); Assert.Same(entitySet, entitySetMapping.EntitySet); var entityTypeMapping = entitySetMapping.EntityTypeMappings.Single(); Assert.Same(entityType, entityTypeMapping.EntityType); Assert.NotNull(entityTypeMapping.TypeMappingFragments.Single().Table); Assert.Equal("E", entityTypeMapping.TypeMappingFragments.Single().Table.Name); Assert.Equal(2, entityTypeMapping.TypeMappingFragments.Single().Table.Columns.Count); Assert.Equal(typeof(object), entityTypeMapping.GetClrType()); }
public void Generate_should_map_entity_keys_to_primary_keys() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); var type = typeof(object); entityType.Annotations.SetClrType(type); var property = EdmProperty.Primitive("Id", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String)); entityType.AddMember(property); var idProperty = property; entityType.AddKeyMember(idProperty); var entitySet = model.AddEntitySet("ESet", entityType); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet); var entityTypeMapping = entitySetMapping.EntityTypeMappings.Single(); Assert.Equal(1, entityTypeMapping.MappingFragments.Single().Table.DeclaredKeyProperties.Count()); Assert.Equal("Id", entityTypeMapping.MappingFragments.Single().Table.DeclaredKeyProperties.Single().Name); Assert.True(entityTypeMapping.MappingFragments.Single().Table.DeclaredKeyProperties.Single().IsPrimaryKeyColumn); }
public void Generate_maps_abstract_type_hierarchies_correctly() { var model = new EdmModel().Initialize(); var rootEntityType = model.AddEntityType("E"); rootEntityType.SetClrType(typeof(object)); rootEntityType.AddPrimitiveProperty("P1").PropertyType.EdmType = EdmPrimitiveType.Int32; rootEntityType.DeclaredKeyProperties.Add(rootEntityType.Properties.First()); rootEntityType.AddPrimitiveProperty("P2").PropertyType.EdmType = EdmPrimitiveType.String; model.AddEntitySet("ESet", rootEntityType); var entityType2 = model.AddEntityType("E2"); entityType2.AddPrimitiveProperty("P3").PropertyType.EdmType = EdmPrimitiveType.Decimal; entityType2.SetClrType(typeof(string)); entityType2.IsAbstract = true; entityType2.BaseType = rootEntityType; var entityType3 = model.AddEntityType("E3"); entityType3.SetClrType(typeof(int)); entityType3.AddPrimitiveProperty("P4").PropertyType.EdmType = EdmPrimitiveType.Int32; entityType3.BaseType = entityType2; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entityType1Mapping = databaseMapping.GetEntityTypeMapping(rootEntityType); var entityType3Mapping = databaseMapping.GetEntityTypeMapping(entityType3); Assert.Equal(2, entityType1Mapping.TypeMappingFragments.Single().PropertyMappings.Count); Assert.Equal("P1", entityType1Mapping.TypeMappingFragments.Single().PropertyMappings[0].Column.Name); Assert.Equal("P2", entityType1Mapping.TypeMappingFragments.Single().PropertyMappings[1].Column.Name); Assert.Equal(4, entityType3Mapping.TypeMappingFragments.Single().PropertyMappings.Count); Assert.Equal("P1", entityType3Mapping.TypeMappingFragments.Single().PropertyMappings[0].Column.Name); Assert.Equal("P2", entityType3Mapping.TypeMappingFragments.Single().PropertyMappings[1].Column.Name); Assert.Equal("P3", entityType3Mapping.TypeMappingFragments.Single().PropertyMappings[2].Column.Name); Assert.Equal("P4", entityType3Mapping.TypeMappingFragments.Single().PropertyMappings[3].Column.Name); var table = entityType1Mapping.TypeMappingFragments.Single().Table; Assert.Equal(5, table.Columns.Count); }
public void Generate_can_map_type_hierarchies_using_Tph() { var model = new EdmModel().Initialize(); var rootEntityType = model.AddEntityType("E"); rootEntityType.SetClrType(typeof(object)); rootEntityType.AddPrimitiveProperty("P1").PropertyType.EdmType = EdmPrimitiveType.Int32; rootEntityType.AddPrimitiveProperty("P2").PropertyType.EdmType = EdmPrimitiveType.String; var entitySet = model.AddEntitySet("ESet", rootEntityType); var entityType2 = model.AddEntityType("E2"); entityType2.AddPrimitiveProperty("P3").PropertyType.EdmType = EdmPrimitiveType.Decimal; entityType2.SetClrType(typeof(string)); entityType2.BaseType = rootEntityType; var entityType3 = model.AddEntityType("E3"); entityType3.SetClrType(typeof(int)); entityType3.AddPrimitiveProperty("P4").PropertyType.EdmType = EdmPrimitiveType.Int32; entityType3.BaseType = entityType2; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet); Assert.NotNull(entitySetMapping); var entityTypeMappings = entitySetMapping.EntityTypeMappings; Assert.Equal(3, entityTypeMappings.Count); var entityType1Mapping = databaseMapping.GetEntityTypeMapping(rootEntityType); var entityType2Mapping = databaseMapping.GetEntityTypeMapping(entityType2); var entityType3Mapping = databaseMapping.GetEntityTypeMapping(entityType3); Assert.Equal(2, entityType1Mapping.TypeMappingFragments.Single().PropertyMappings.Count); Assert.Equal(3, entityType2Mapping.TypeMappingFragments.Single().PropertyMappings.Count); Assert.Equal(4, entityType3Mapping.TypeMappingFragments.Single().PropertyMappings.Count); var table = entityType1Mapping.TypeMappingFragments.Single().Table; Assert.Same(table, entityType2Mapping.TypeMappingFragments.Single().Table); Assert.Same(table, entityType3Mapping.TypeMappingFragments.Single().Table); Assert.Equal(5, table.Columns.Count); Assert.Equal("P1", table.Columns[0].Name); Assert.Equal("P2", table.Columns[1].Name); Assert.Equal("P3", table.Columns[2].Name); Assert.Equal("P4", table.Columns[3].Name); Assert.Equal("Discriminator", table.Columns[4].Name); }
public void Generate_can_map_foreign_key_association_type() { var model = new EdmModel().Initialize(); var principalEntityType = model.AddEntityType("P"); principalEntityType.SetClrType(typeof(object)); var dependentEntityType = model.AddEntityType("D"); dependentEntityType.SetClrType(typeof(string)); var dependentProperty1 = dependentEntityType.AddPrimitiveProperty("FK1"); dependentProperty1.PropertyType.EdmType = EdmPrimitiveType.Int32; var dependentProperty2 = dependentEntityType.AddPrimitiveProperty("FK2"); dependentProperty2.PropertyType.EdmType = EdmPrimitiveType.String; model.AddEntitySet("PSet", principalEntityType); model.AddEntitySet("DSet", dependentEntityType); var associationType = model.AddAssociationType("P_D", principalEntityType, EdmAssociationEndKind.Required, dependentEntityType, EdmAssociationEndKind.Many); associationType.Constraint = new EdmAssociationConstraint { DependentEnd = associationType.TargetEnd, DependentProperties = new[] { dependentProperty1, dependentProperty2 }, }; associationType.SourceEnd.DeleteAction = EdmOperationAction.Cascade; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var dependentTable = databaseMapping.GetEntityTypeMapping(dependentEntityType).TypeMappingFragments.Single().Table; var foreignKeyConstraint = dependentTable.ForeignKeyConstraints.Single(); Assert.Equal(2, dependentTable.Columns.Count()); Assert.Equal(2, foreignKeyConstraint.DependentColumns.Count); Assert.Equal(DbOperationAction.Cascade, foreignKeyConstraint.DeleteAction); Assert.Equal(associationType.Name, foreignKeyConstraint.Name); var foreignKeyColumn = foreignKeyConstraint.DependentColumns.First(); Assert.False(foreignKeyColumn.IsNullable); Assert.Equal("FK1", foreignKeyColumn.Name); }
public void Generate_should_map_entity_keys_to_primary_keys() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); entityType.SetClrType(typeof(object)); var idProperty = entityType.AddPrimitiveProperty("Id"); idProperty.PropertyType.EdmType = EdmPrimitiveType.Int32; entityType.DeclaredKeyProperties.Add(idProperty); var entitySet = model.AddEntitySet("ESet", entityType); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var entitySetMapping = databaseMapping.GetEntitySetMapping(entitySet); var entityTypeMapping = entitySetMapping.EntityTypeMappings.Single(); Assert.Equal(1, entityTypeMapping.TypeMappingFragments.Single().Table.KeyColumns.Count()); Assert.Equal("Id", entityTypeMapping.TypeMappingFragments.Single().Table.KeyColumns.Single().Name); Assert.True(entityTypeMapping.TypeMappingFragments.Single().Table.KeyColumns.Single().IsPrimaryKeyColumn); }
public void Generate_should_correctly_map_time_primitive_property_facets() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("E"); var type = typeof(object); entityType.Annotations.SetClrType(type); model.AddEntitySet("ESet", entityType); var property = EdmProperty .Primitive("P", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Time)); entityType.AddMember(property); property.Nullable = false; property.IsFixedLength = true; property.IsMaxLength = true; property.IsUnicode = false; property.MaxLength = 42; property.Precision = 23; property.Scale = 77; property.SetStoreGeneratedPattern(StoreGeneratedPattern.Identity); var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var column = databaseMapping.GetEntityTypeMapping(entityType).MappingFragments.Single().ColumnMappings.Single().ColumnProperty; Assert.False(column.Nullable); Assert.Null(column.IsFixedLength); Assert.False(column.IsMaxLength); Assert.Null(column.IsUnicode); Assert.Null(column.MaxLength); Assert.Equal<byte?>(23, column.Precision); Assert.Null(column.Scale); Assert.Equal(StoreGeneratedPattern.Identity, column.StoreGeneratedPattern); }