2011-02-08 27 views
6

Hola, estoy trabajando actualmente con la base de datos .sdf (Server Compact Versión 4.0) y sql express. Estoy tratando de configurar una eliminación en cascada en la misma tabla (categoría - subcategoría), pero entiendo que no puedo agregar relación a la misma tabla.Cascade Delete, misma tabla, Entity Framework 4 Code First

Una restricción de clave externa y tenía actualización o una regla de supresión en cascada, y auto-referencia a una columna en la misma mesa, no está permitido

Qué puedo hacer acerca de esto?

EDIT
Soy el único con este problema?

Respuesta

5

Como se sugirió su SQLException, esta es una limitación de SQL Server en general y no tiene nada que ver con EF o Code First. Básicamente, SQL Server no permite crear acciones en cascada en Relaciones internas - cuando la ruta en cascada va desde la columna col1 en la tabla A hasta la columna col2 también en la tabla A. A-> A.

De hecho, Code First intentaba utilizar Declarative Referential Integrity (DRI) para imponer eliminaciones en cascada y throws de SQL Server.

La única manera de hacer cumplir las eliminaciones en cascada para esta relación es usar Triggers. Puede escribir un desencadenador de eliminación en la tabla de categorías que borre las filas dependientes o establezca todas las claves externas correspondientes en NULL (según sus requisitos).

Cuestiones relacionadas