public void Apply_should_introduce_cascade_delete_on_constraints() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel().Initialize(), new EdmModel().Initialize()); var foreignKeyConstraint = new ForeignKeyBuilder(databaseMapping.Database, "FK") { PrincipalTable = new EntityType("P", XmlConstants.TargetNamespace_3, DataSpace.SSpace) }; Assert.Equal(OperationAction.None, foreignKeyConstraint.DeleteAction); var table = databaseMapping.Database.AddTable("T"); table.AddForeignKey(foreignKeyConstraint); var associationType = new AssociationType { SourceEnd = new AssociationEndMember("S", new EntityType()), TargetEnd = new AssociationEndMember("T", new EntityType()) }; associationType.SourceEnd.RelationshipMultiplicity = RelationshipMultiplicity.Many; associationType.TargetEnd.RelationshipMultiplicity = RelationshipMultiplicity.Many; var associationSetMapping = databaseMapping.AddAssociationSetMapping( new AssociationSet("AS", associationType), new EntitySet()); associationSetMapping.StoreEntitySet = databaseMapping.Database.GetEntitySet(table); ((IDbMappingConvention)new ManyToManyCascadeDeleteConvention()).Apply(databaseMapping); Assert.Equal(OperationAction.Cascade, foreignKeyConstraint.DeleteAction); }
private static AssociationSetMapping GenerateAssociationSetMapping( AssociationType associationType, DbDatabaseMapping databaseMapping, AssociationEndMember principalEnd, AssociationEndMember dependentEnd, EntityType dependentTable) { DebugCheck.NotNull(associationType); DebugCheck.NotNull(databaseMapping); DebugCheck.NotNull(principalEnd); DebugCheck.NotNull(dependentEnd); DebugCheck.NotNull(dependentTable); var associationSetMapping = databaseMapping.AddAssociationSetMapping( databaseMapping.Model.GetAssociationSet(associationType), databaseMapping.Database.GetEntitySet(dependentTable)); associationSetMapping.StoreEntitySet = databaseMapping.Database.GetEntitySet(dependentTable); associationSetMapping.SourceEndMapping.AssociationEnd = principalEnd; associationSetMapping.TargetEndMapping.AssociationEnd = dependentEnd; return associationSetMapping; }
public void Configure_should_configure_function_mapping() { var functionsConfiguration = new ModificationFunctionsConfiguration(); var functionConfiguration = new ModificationFunctionConfiguration(); functionConfiguration.HasName("Func"); functionsConfiguration.Insert(functionConfiguration); var mockPropertyInfo = new MockPropertyInfo(); var navigationPropertyConfiguration = new NavigationPropertyConfiguration(mockPropertyInfo) { ModificationFunctionsConfiguration = functionsConfiguration }; var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel(DataSpace.CSpace), new EdmModel(DataSpace.SSpace)); var associationSetMapping = databaseMapping.AddAssociationSetMapping( new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)), new EntitySet()); var dependentTable = databaseMapping.Database.AddTable("T"); associationSetMapping.StoreEntitySet = databaseMapping.Database.GetEntitySet(dependentTable); associationSetMapping.AssociationSet.ElementType.SetConfiguration(navigationPropertyConfiguration); associationSetMapping.SourceEndMapping.EndMember = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace)); associationSetMapping.SourceEndMapping.EndMember.SetClrPropertyInfo(mockPropertyInfo); navigationPropertyConfiguration.Configure(associationSetMapping, databaseMapping, ProviderRegistry.Sql2008_ProviderManifest); Assert.Equal("Func", associationSetMapping.ModificationFunctionMapping.InsertFunctionMapping.Function.Name); }
public void Configure_should_configure_mapping() { var manyToManyAssociationMappingConfiguration = new ManyToManyAssociationMappingConfiguration(); manyToManyAssociationMappingConfiguration.ToTable("Foo"); var mockPropertyInfo = new MockPropertyInfo(typeof(AType1), "N"); var navigationPropertyConfiguration = new NavigationPropertyConfiguration(mockPropertyInfo) { AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration }; var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel(DataSpace.CSpace), new EdmModel(DataSpace.SSpace)); var associationSetMapping = databaseMapping.AddAssociationSetMapping( new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)), new EntitySet()); var dependentTable = databaseMapping.Database.AddTable("T"); associationSetMapping.StoreEntitySet = databaseMapping.Database.GetEntitySet(dependentTable); associationSetMapping.AssociationSet.ElementType.SetConfiguration(navigationPropertyConfiguration); associationSetMapping.SourceEndMapping.AssociationEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace)); associationSetMapping.SourceEndMapping.AssociationEnd.SetClrPropertyInfo(mockPropertyInfo); navigationPropertyConfiguration.Configure(associationSetMapping, databaseMapping, ProviderRegistry.Sql2008_ProviderManifest); Assert.Equal("Foo", associationSetMapping.Table.GetTableName().Name); }
public void AddAssociationSetMapping_should_add_mapping() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel(DataSpace.CSpace), new EdmModel(DataSpace.SSpace)); var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)); var associationSetMapping = databaseMapping.AddAssociationSetMapping(associationSet, new EntitySet()); Assert.NotNull(associationSetMapping); Assert.Equal(1, databaseMapping.EntityContainerMappings.Single().AssociationSetMappings.Count()); Assert.Same(associationSet, associationSetMapping.AssociationSet); }
public void GetEntitySetMappings_should_return_mappings() { var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel(DataSpace.CSpace), new EdmModel(DataSpace.SSpace)); databaseMapping.AddAssociationSetMapping( new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)), new EntitySet()); Assert.Equal(1, databaseMapping.GetAssociationSetMappings().Count()); }
public void Configure_should_configure_mapping() { var manyToManyAssociationMappingConfiguration = new ManyToManyAssociationMappingConfiguration(); manyToManyAssociationMappingConfiguration.ToTable("Foo"); var mockPropertyInfo = new MockPropertyInfo(); var navigationPropertyConfiguration = new NavigationPropertyConfiguration(mockPropertyInfo) { AssociationMappingConfiguration = manyToManyAssociationMappingConfiguration }; var databaseMapping = new DbDatabaseMapping() .Initialize(new EdmModel().Initialize(), new EdmModel().Initialize()); var associationSetMapping = databaseMapping.AddAssociationSetMapping( new AssociationSet("AS", new AssociationType()), new EntitySet()); var dependentTable = databaseMapping.Database.AddTable("T"); associationSetMapping.StoreEntitySet = databaseMapping.Database.GetEntitySet(dependentTable); associationSetMapping.AssociationSet.ElementType.SetConfiguration(navigationPropertyConfiguration); associationSetMapping.SourceEndMapping.EndMember = new AssociationEndMember("S", new EntityType()); associationSetMapping.SourceEndMapping.EndMember.SetClrPropertyInfo(mockPropertyInfo); navigationPropertyConfiguration.Configure(associationSetMapping, databaseMapping); Assert.Equal("Foo", associationSetMapping.Table.GetTableName().Name); }