Saltar al contenido

Entity Framework (Core): eliminación en cascada

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); 
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *