net framework foreign eliminar delete cascada attribute asp entity-framework cascade

entity-framework - eliminar - entity framework foreign key attribute cascade delete



¿Cómo funciona WillCascadeOnDelete en Entity Framework? (2)

Asegúrese de que en la ventana Relación de clave externa en SQL Server, haya seleccionado Cascade como regla de eliminación.

Según tengo entendido, si elimino una fila primaria, sus secundarias deberían eliminarse si activo la función de eliminar en cascada. Sin embargo, de mis pruebas, no parece funcionar en absoluto. No importa si establezco WillCascaseOnDelete en verdadero o falso, simplemente establece la clave foránea de sus hijos en nulo. Esto está causando otro problema que tengo que configurar la clave externa que puede contener nulos, de lo contrario, SaveChange lanzará una excepción. ¿Es este un defecto o comportamiento deseado?


Esto se debe a que sus claves externas (hijo) son anulables. De forma predeterminada, al eliminar la principal, si la clave externa en la relación es anulable, EF eliminará la principal y establecerá la clave externa en nulo. Si la clave externa no es NULA, se eliminará el elemento secundario (¿el comportamiento que está buscando?).

Puede alterar este comportamiento predeterminado here