2011-02-08 37 views
6

Hi Im hiện đang làm việc với cơ sở dữ liệu .sdf (Server Compact Version 4.0) và sql express. Tôi đang cố gắng để thiết lập một cascade xóa trên cùng một bảng (thể loại - tiểu thể loại) nhưng tôi nhận được rằng tôi không thể thêm mối quan hệ vào cùng một bảng.Cascade Delete, cùng một bảng, Entity Framework 4 Code Đầu tiên

Một ràng buộc khoá ngoại đã và cập nhật hoặc một quy tắc cascade delete, và tự tài liệu tham khảo một cột trong cùng một bảng , không được phép

Tôi có thể làm gì về điều này?

EDIT
Tôi là người duy nhất có vấn đề này?

Trả lời

5

Như SQLException của bạn đã đề xuất, đây là giới hạn của SQL Server nói chung và không liên quan gì đến EF hoặc Code First. Về cơ bản, SQL Server không cho phép tạo các hành động tầng trên Các mối quan hệ bên trong - khi đường dẫn tầng đi từ cột col1 trong bảng A đến cột col2 cũng trong bảng A. A-> A.

Thực tế, Code First đã cố gắng sử dụng Declarative Referential Integrity (DRI) để thực thi xóa tầng và SQL Server ném.

Cách duy nhất để thực thi xóa tầng cho mối quan hệ này là sử dụng Trình kích hoạt. Bạn có thể viết Trình kích hoạt xóa trên bảng danh mục hoặc xóa các hàng phụ thuộc hoặc đặt tất cả các khóa nước ngoài tương ứng thành NULL (dựa trên các yêu cầu của bạn).

Các vấn đề liên quan