¿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.

Respuestas a la pregunta(5)

Su respuesta a la pregunta