public void Discover_returns_configuration_when_unconventional_self_referencing_many_to_required() { var modelBuilder = new DbModelBuilder(); modelBuilder.Entity <SelfReferencingEntity>().HasMany(e => e.Children).WithRequired(e => e.Parent) .WillCascadeOnDelete(); var model = modelBuilder.Build(new DbProviderInfo("System.Data.SqlClient", "2012")); var entityType = model.ConceptualModel.EntityTypes.First(e => e.Name == "SelfReferencingEntity"); var navigationProperty = entityType.NavigationProperties.First(p => p.Name == "Children"); var configuration = new CascadeDeleteDiscoverer() .Discover(navigationProperty, model) as CascadeDeleteConfiguration; Assert.NotNull(configuration); Assert.Equal(OperationAction.Cascade, configuration.DeleteBehavior); }
public void Discover_returns_configuration_when_unconventional_optional_to_many() { var modelBuilder = new DbModelBuilder(); modelBuilder.Entity <Entity1>().HasOptional(e => e.Entity2).WithMany(e => e.Entity1s).WillCascadeOnDelete(); modelBuilder.Entity <Entity1>().Ignore(e => e.Entity2s); modelBuilder.Entity <Entity2>().Ignore(e => e.Entity1); var model = modelBuilder.Build(new DbProviderInfo("System.Data.SqlClient", "2012")); var entityType = model.ConceptualModel.EntityTypes.First(e => e.Name == "Entity1"); var navigationProperty = entityType.NavigationProperties.First(p => p.Name == "Entity2"); var configuration = new CascadeDeleteDiscoverer() .Discover(navigationProperty, model) as CascadeDeleteConfiguration; Assert.NotNull(configuration); Assert.Equal(OperationAction.Cascade, configuration.DeleteBehavior); }
public void Discover_returns_configuration_when_unconventional_optional_to_required() { var modelBuilder = new DbModelBuilder(); modelBuilder.Entity<Entity1>().HasOptional(e => e.Entity2).WithRequired(e => e.Entity1) .WillCascadeOnDelete(); modelBuilder.Entity<Entity1>().Ignore(e => e.Entity2s); modelBuilder.Entity<Entity2>().Ignore(e => e.Entity1s); var model = modelBuilder.Build(new DbProviderInfo("System.Data.SqlClient", "2012")); var entityType = model.ConceptualModel.EntityTypes.First(e => e.Name == "Entity1"); var navigationProperty = entityType.NavigationProperties.First(p => p.Name == "Entity2"); var configuration = new CascadeDeleteDiscoverer() .Discover(navigationProperty, model) as CascadeDeleteConfiguration; Assert.NotNull(configuration); Assert.Equal(OperationAction.Cascade, configuration.DeleteBehavior); }
public void Discover_returns_configuration_when_unconventional_self_referencing_many_to_required() { var modelBuilder = new DbModelBuilder(); modelBuilder.Entity<SelfReferencingEntity>().HasMany(e => e.Children).WithRequired(e => e.Parent) .WillCascadeOnDelete(); var model = modelBuilder.Build(new DbProviderInfo("System.Data.SqlClient", "2012")); var entityType = model.ConceptualModel.EntityTypes.First(e => e.Name == "SelfReferencingEntity"); var navigationProperty = entityType.NavigationProperties.First(p => p.Name == "Children"); var configuration = new CascadeDeleteDiscoverer() .Discover(navigationProperty, model) as CascadeDeleteConfiguration; Assert.NotNull(configuration); Assert.Equal(OperationAction.Cascade, configuration.DeleteBehavior); }