Solución:
En realidad, EF Core 3.0 es la primera versión de EF que agrega dicha capacidad a través de la opción DeleteBehavior.ClientCascade (desafortunadamente aún no se incluye en la sección Cascade Delete de la documentación):
Para las entidades rastreadas por el
DbContext
, las entidades dependientes se eliminarán cuando se elimine el principal relacionado.Si la base de datos se ha creado a partir del modelo utilizando Entity Framework Migrations o el
EnsureCreated()
, entonces el comportamiento en la base de datos es generar un error si se viola una restricción de clave externa.
En breve, todos Client*
eliminar comportamientos se asignan a Restrict
, es decir, relación FK forzada en la base de datos sin cascada. El comportamiento del cliente se aplica solo a las entidades rastreado por el contexto, así que asegúrese de Include
los datos relacionados antes de eliminarlos (como en su muestra).
Para configurar la opción, necesitaría una API fluida como mínimo con una Has
+ With
para llegar a OnDelete
método, por ejemplo
modelBuilder.Entity<Blog>()
.HasMany(e => e.Posts)
.WithOne(e => e.Blog)
.OnDelete(DeleteBehavior.ClientCascade);