public void Apply_should_introduce_cascade_delete_on_constraints() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata().Initialize()); var foreignKeyConstraint = new DbForeignKeyConstraintMetadata(); Assert.Equal(DbOperationAction.None, foreignKeyConstraint.DeleteAction); var table = new DbTableMetadata(); table.ForeignKeyConstraints.Add(foreignKeyConstraint); var associationType = new EdmAssociationType().Initialize(); associationType.SourceEnd.EndKind = EdmAssociationEndKind.Many; associationType.SourceEnd.EntityType = new EdmEntityType(); associationType.TargetEnd.EndKind = EdmAssociationEndKind.Many; associationType.TargetEnd.EntityType = new EdmEntityType(); var associationSetMapping = databaseMapping.AddAssociationSetMapping(new EdmAssociationSet { ElementType = associationType }); associationSetMapping.Table = table; ((IDbMappingConvention)new ManyToManyCascadeDeleteConvention()).Apply(databaseMapping); Assert.Equal(DbOperationAction.Cascade, foreignKeyConstraint.DeleteAction); }
public void GetEntitySetMappings_should_return_mappings() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata()); databaseMapping.AddAssociationSetMapping(new EdmAssociationSet()); Assert.Equal(1, databaseMapping.GetAssociationSetMappings().Count()); }
public void AddAssociationSetMapping_should_add_mapping() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata()); var associationSet = new EdmAssociationSet(); var associationSetMapping = databaseMapping.AddAssociationSetMapping(associationSet); Assert.NotNull(associationSetMapping); Assert.Equal(1, databaseMapping.EntityContainerMappings.Single().AssociationSetMappings.Count()); Assert.Same(associationSet, associationSetMapping.AssociationSet); }
public void Configure_should_configure_mapping() { var manyToManyAssociationMappingConfiguration = new ManyToManyAssociationMappingConfiguration(); manyToManyAssociationMappingConfiguration.ToTable("Foo"); var navigationPropertyConfiguration = new NavigationPropertyConfiguration(new MockPropertyInfo()) { AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration }; var databaseMapping = new DbDatabaseMapping().Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata()); var associationSetMapping = databaseMapping.AddAssociationSetMapping(new EdmAssociationSet { ElementType = new EdmAssociationType() }); associationSetMapping.Table = new DbTableMetadata(); associationSetMapping.AssociationSet.ElementType.SetConfiguration(navigationPropertyConfiguration); navigationPropertyConfiguration.Configure(associationSetMapping, databaseMapping); Assert.Equal("Foo", associationSetMapping.Table.GetTableName().Name); }
private static DbAssociationSetMapping GenerateAssociationSetMapping( EdmAssociationType associationType, DbDatabaseMapping databaseMapping, EdmAssociationEnd principalEnd, EdmAssociationEnd dependentEnd, DbTableMetadata dependentTable) { //Contract.Requires(associationType != null); //Contract.Requires(databaseMapping != null); //Contract.Requires(principalEnd != null); //Contract.Requires(dependentEnd != null); //Contract.Requires(dependentTable != null); var associationSetMapping = databaseMapping.AddAssociationSetMapping( databaseMapping.Model.GetAssociationSet(associationType)); associationSetMapping.Table = dependentTable; associationSetMapping.SourceEndMapping.AssociationEnd = principalEnd; associationSetMapping.TargetEndMapping.AssociationEnd = dependentEnd; return associationSetMapping; }