¿Cómo eliminar un niño a muchos registros relacionados en la primera base de datos del código EF?
Bueno, tengo uno a muchos modelo relacionado:
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Child> Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public string ChildName { get; set; }
}
Lo que quiero hacer es claro.Parent.Children
y eliminar las entidades secundarias relacionadas de la base de datos. Ya lo he intentado
Clase de contexto de base de datos:
modelBuilder.Entity<Parent>()
.HasMany(p => p.Children)
.WithOptional()
.WillCascadeOnDelete(true);
esto funciona bien, pero todavía tengo registros redundantes en la base de datos conParent_Id = null
campos cuando lo hago
parent.Children.Clear();
repository.InsertOrUpdate(parent);
en mi clase de repositorio. También el mismo comportamiento es cuando lo hago:
modelBuilder.Entity<Parent>()
.HasMany(pr => pr.Children)
.WithOptional(ri => ri.Parent)
.WillCascadeOnDelete(true);
con adicionalParent
propiedad enChild
clase
public class Child
{
...
public Parent Parent { get; set; }
...
}
o cuando lo hago
modelBuilder.Entity<Child>()
.HasOptional(p => p.Parent)
.WithMany(p => p.Children)
.HasForeignKey(p => p.Parent_Id)
.WillCascadeOnDelete(true);
con propiedad Parent_Id adicional enChild
clase
public class Child
{
...
public int Parent_Id { get; set; }
...
}
Entonces, ¿cómo puedo configurar la eliminación en cascada correctamente? ¿O cómo se supone que debo eliminar esas entidades infantiles? Asumo que esta es una tarea casual, pero me estoy perdiendo algo.