2011-02-08 10 views
6

Hi Im attualmente lavora con .sdf database (Server Compact versione 4.0) e sql express. Sto provando a configurare un'eliminazione a cascata su una stessa tabella (categoria - sotto categoria) ma ottengo che non posso aggiungere la relazione alla stessa tabella.Elimina Cascade, stessa tabella, Entity Framework 4 Codice First

Un vincolo di chiave esterna aveva e aggiornamento o una regola di eliminazione a cascata, e auto-riferimento a una colonna nella stessa tavolo, non è consentito

Che cosa posso fare?

EDIT
Sono l'unico con questo problema?

risposta

5

Come suggerito da SQLException, questa è una limitazione di SQL Server in generale e non ha nulla a che fare con EF o Code First. Fondamentalmente, SQL Server non consente la creazione di azioni a cascata su Relazioni interne - quando il percorso a cascata passa dalla colonna col1 nella tabella A alla colonna col2 anche nella tabella A. A-> A.

Infatti, Code First stava cercando di utilizzare Declarative Referential Integrity (DRI) per applicare le eliminazioni a cascata e i lanci di SQL Server.

L'unico modo per applicare le eliminazioni a cascata per questa relazione è utilizzare Trigger. Puoi scrivere un Elimina Trigger sulla tabella delle categorie che cancella le righe dipendenti o imposta tutte le chiavi esterne corrispondenti su NULL (in base ai tuoi requisiti).

Problemi correlati