Como remover um filho de muitos registros relacionados no primeiro banco de dados do código EF?
Bem, tenho um modelo relacionado a um para muitos:
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; }
}
O que eu quero fazer é claroParent.Children
e remover entidades filhas relacionadas do banco de dados. Eu já tentei:
Classe de contexto do banco de dados:
modelBuilder.Entity<Parent>()
.HasMany(p => p.Children)
.WithOptional()
.WillCascadeOnDelete(true);
isso funciona bem, mas eu ainda tenho registros redundantes no banco de dados comParent_Id = null
campos quando eu faço
parent.Children.Clear();
repository.InsertOrUpdate(parent);
na minha classe de repositório. Também o mesmo comportamento é quando eu faço:
modelBuilder.Entity<Parent>()
.HasMany(pr => pr.Children)
.WithOptional(ri => ri.Parent)
.WillCascadeOnDelete(true);
com adicionalParent
propriedade emChild
classe
public class Child
{
...
public Parent Parent { get; set; }
...
}
ou quando eu faço
modelBuilder.Entity<Child>()
.HasOptional(p => p.Parent)
.WithMany(p => p.Children)
.HasForeignKey(p => p.Parent_Id)
.WillCascadeOnDelete(true);
com propriedade Parent_Id adicional emChild
classe
public class Child
{
...
public int Parent_Id { get; set; }
...
}
Então, como posso configurar a exclusão em cascata corretamente? Ou como devo remover essas entidades filhas? Eu suponho que esta é uma tarefa casual, mas estou perdendo alguma coisa.