public void AddAssociationSet_should_create_and_add_to_default_container() { var model = new EdmModel().Initialize(); var sourceEntityType = model.AddEntityType("Source"); var targetEntityType = model.AddEntityType("Target"); var associationType = model.AddAssociationType( "Foo", sourceEntityType, EdmAssociationEndKind.Required, targetEntityType, EdmAssociationEndKind.Many); var associationSet = model.AddAssociationSet("FooSet", associationType); Assert.NotNull(associationSet); Assert.Equal("FooSet", associationSet.Name); Assert.Same(associationType, associationSet.ElementType); Assert.True(model.Containers.Single().AssociationSets.Contains(associationSet)); }
public void GetAssociationSet_should_return_association_set() { var model = new EdmModel().Initialize(); var entityType = model.AddEntityType("Foo"); model.AddEntitySet("FooSet", entityType); var associationType = new EdmAssociationType().Initialize(); associationType.SourceEnd.EntityType = entityType; associationType.TargetEnd.EntityType = entityType; model.AddAssociationSet("FooSet", associationType); var associationSet = model.GetAssociationSet(associationType); Assert.NotNull(associationSet); Assert.Same(associationType, associationSet.ElementType); }
public void RemoveAssociationType_should_remove_type_and_set() { var model = new EdmModel().Initialize(); var associationType = model.AddAssociationType( "A", new EdmEntityType(), EdmAssociationEndKind.Optional, new EdmEntityType(), EdmAssociationEndKind.Many); model.AddAssociationSet("FooSet", associationType); model.RemoveAssociationType(associationType); Assert.Equal(0, model.GetAssociationTypes().Count()); Assert.Equal(0, model.Containers.First().AssociationSets.Count()); }
public void Generate_can_map_independent_association_type() { var model = new EdmModel().Initialize(); var principalEntityType = model.AddEntityType("P"); principalEntityType.SetClrType(typeof(object)); var idProperty1 = principalEntityType.AddPrimitiveProperty("Id1"); idProperty1.PropertyType.EdmType = EdmPrimitiveType.Int32; principalEntityType.DeclaredKeyProperties.Add(idProperty1); var idProperty2 = principalEntityType.AddPrimitiveProperty("Id2"); idProperty2.PropertyType.EdmType = EdmPrimitiveType.String; principalEntityType.DeclaredKeyProperties.Add(idProperty2); var dependentEntityType = model.AddEntityType("D"); dependentEntityType.SetClrType(typeof(string)); model.AddEntitySet("PSet", principalEntityType); model.AddEntitySet("DSet", dependentEntityType); var associationType = model.AddAssociationType("P_D", principalEntityType, EdmAssociationEndKind.Required, dependentEntityType, EdmAssociationEndKind.Many); model.AddAssociationSet("P_DSet", associationType); associationType.SourceEnd.DeleteAction = EdmOperationAction.Cascade; var databaseMapping = new DatabaseMappingGenerator(ProviderRegistry.Sql2008_ProviderManifest).Generate(model); var foreignKeyConstraint = databaseMapping.GetEntityTypeMapping(dependentEntityType).TypeMappingFragments.Single().Table.ForeignKeyConstraints.Single(); Assert.Equal(2, foreignKeyConstraint.DependentColumns.Count); Assert.Equal(associationType.Name, foreignKeyConstraint.Name); Assert.Equal(1, databaseMapping.EntityContainerMappings.Single().AssociationSetMappings.Count()); Assert.Equal(DbOperationAction.Cascade, foreignKeyConstraint.DeleteAction); var foreignKeyColumn = foreignKeyConstraint.DependentColumns.First(); Assert.False(foreignKeyColumn.IsNullable); Assert.Equal("P_Id1", foreignKeyColumn.Name); }