2010-11-10 39 views
12

Tôi có bảng tblEvent và một bảng khác là tblContact. Có một ContactID trường trong tblEvent được liên kết bởi một khóa ngoài tới ContactID trong tblContact. Tôi đã kiểm tra ba lần; khoá ngoại nằm trong cơ sở dữ liệu.EF không tạo liên kết khóa ngoài từ khóa ngoài trong bảng

Mô hình khung thực thể KHÔNG tạo thuộc tính điều hướng và liên kết khóa ngoài cho nó như đối với các khóa ngoài khác.

Điều gì có thể khác biệt về khóa ngoại này mà EF không tạo ra thuộc tính điều hướng cho nó?

Cảm ơn!

+0

ContactID có được tạo từ khóa duy nhất hoặc khóa chính không? Chúng ta có thể thấy SQL –

+0

rằng SQL không có tblEvent, chỉ một FK đến tblLanguage. Bạn đang gặp sự cố với FK nào? tblEvent hoặc tblLanguage. Chúng ta cần xem SQL cho tblContact AND tblEvent. – RPM1984

Trả lời

0

nếu bạn đang sử dụng 3.5sp1 có thể là vấn đề.

Bài viết này chạm vào một số thay đổi và nếu không có gì khác bạn luôn có thể thêm liên kết fk theo cách thủ công vào trình thiết kế thực thể như được mô tả trong bài viết.

http://blogs.msdn.com/b/efdesign/archive/2009/03/16/foreign-keys-in-the-entity-framework.aspx

+0

Đây là .NET 4.0. Điều gì là điên là nó nhận ra các phím nước ngoài KHÁC - chỉ cần không phải là một và hai người khác. Các khóa ngoại khác mà nó nhận ra. – rsteckly

11

Tôi tìm thấy giải pháp ở đây:

Why doesn't EF 4 generate association for FK relation to column with unique index?

Lý do nó không được công nhận nó là là vì bàn đã có một chỉ số không clustered độc đáo trên các lĩnh vực then chốt của nước ngoài.

Rõ ràng, chỉ mục duy nhất, không được nhóm cho phép giá trị rỗng không thể được ánh xạ.

+3

Giải pháp là gì? Tôi đang sử dụng Id làm khóa chính và GUID để tham chiếu đến một bảng khác. Tôi không muốn sử dụng GUID làm khóa chính. Tôi biết tôi chỉ có thể sử dụng một thuộc tính khác làm chỉ số nhóm, nhưng nó có vẻ sai. – NSAddict

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