2011-02-08 7 views
6

Hi Im obecnie pracuje z bazą danych .sdf (Server Compact wersja 4.0) i sql express. Próbuję skonfigurować usuwanie kaskadowe na tej samej tabeli (kategoria - podkategoria), ale dostaję, że nie mogę dodać relacji do tej samej tabeli.Cascade Usuń, ta sama tabela, Entity Framework 4 Code First

klucz obcy miał i aktualizacji lub regułą usuwania kaskadowego i samodzielnych odniesień kolumny w tym samym tabeli, nie jest dozwolone

Co mogę z tym zrobić?

EDYTOWANIE
Jestem jedyny z tym problemem?

Odpowiedz

5

Zgodnie z sugestią SQLException jest to ogólne ograniczenie SQL Server i nie ma nic wspólnego z EF lub Code First. Zasadniczo SQL Server nie zezwala na tworzenie akcji kaskadowych na Wewnętrznych relacjach - kiedy ścieżka kaskadowa przechodzi od kolumny col1 w tabeli A do kolumny col2 również w tabeli A. A-> A.

W rzeczywistości Code First próbował użyć Declarative Referential Integrity (DRI), aby wymusić usuwanie kaskad i wyrzucanie SQL Server.

Jedynym sposobem na wymuszenie kasowania dla tej zależności jest użycie wyzwalaczy. Możesz napisać Delete Trigger na tabeli kategorii, która usunie zależne wiersze lub ustawia wszystkie odpowiednie klucze obce na NULL (w zależności od twoich wymagań).