Tôi có bảng cơ sở dữ liệu mà trông như thế này:Entity Framework Cardinality Issue trên Hiệp hội 0 ... 1
Một Task
có thể được ánh xạ tới một Module
, hoặc không ánh xạ ở tất cả (0. ..1). Tôi đang sử dụng cơ sở dữ liệu Entity Framework-đầu tiên, và khi tôi tạo ra mô hình từ cơ sở dữ liệu, thực thể Task đi qua với các Mô-đun như một bộ sưu tập (0 hoặc nhiều hơn). Vì vậy, tôi đã mở EDMX của mình và thay đổi thuộc tính điều hướng "Mô-đun" trên Task thành 0 ... 1.
Bây giờ, khi tôi cố gắng để biên dịch, tôi nhận được lỗi này:
Error 3003: Problem in mapping fragments starting at line 1241:Given the cardinality of Association End Member Task, it should be mapped to key columns of the table TaskModule. Either fix the mapping or change the multiplicity of this end.
Tôi không hiểu những gì tôi cần phải làm gì để khắc phục điều này. Tôi đã xem chi tiết liên kết và không thể thấy sự cố. Tôi biết tôi có thể thiếu một cái gì đó ngu ngốc, nhưng hoàn toàn bị mắc kẹt. tính liên kết:
Visual Studio 2010 SP1, Entity Framework 4.3.1.0, SQL Server 2008 R2.
không có ý nghĩa để có Bảng TaskModule. ModuleName phải là một khóa ngoại có thể vô hiệu hóa trong Task –
@ Raphaël Althaus Dường như với tôi đó là một câu trả lời triết học (tức là vi phạm NF thứ ba, nhưng gây tranh cãi cho dù bạn có nên hay không). Bạn có thể chỉ cho tôi tài liệu hỗ trợ POV của bạn không? Hãy xem http://stackoverflow.com/questions/1723808/nullable-foreign-key-bad-practice – Dean
Đó là một câu hỏi tuyệt vời mà bạn đã liên kết, Dean. Tôi đoán tôi là người thiểu số, có lẽ tôi là trường học cũ, nhưng các khóa ngoại quốc vô giá trị thực sự làm tôi khó hiểu. Tôi đã thay đổi bảng TaskModule như bạn đã đề xuất và mọi thứ hoạt động tốt ngay bây giờ. –