2011-01-13 18 views
9

Bạn có sử dụng tùy chọn này (mặc định được chọn) hoặc bạn bỏ chọn nó?Sử dụng tùy chọn "Bao gồm cột khóa ngoài trong mô hình" trong trình hướng dẫn EF

Tôi phát hiện ra rằng khi tôi có cả cột FK và thuộc tính điều hướng trên các thực thể của tôi, nó dẫn đến các vấn đề với công cụ lập bản đồ - chúng có thể liên kết với nhau hoặc hầu như không bao giờ cả hai.

Nếu chúng tôi tuân thủ các nguyên tắc của mô hình khái niệm một cách nghiêm túc, tôi nghĩ rằng các cột đó không bao giờ nên đưa nó vào các thuộc tính, phải không?

Hy vọng nhiều người trong số các bạn trả lời để chúng tôi có thể có được đại diện tốt hơn về những gì nhà phát triển chọn thường xuyên hơn.

Trả lời

12

Nếu chúng ta làm theo các hướng dẫn của mô hình khái niệm nghiêm Tôi nghĩ những cột không bao giờ nên làm cho nó để tài sản, nên họ?

Đúng - đó là những gì nhóm EF đã làm trong bản phát hành đầu tiên với .NET 3.5 SP1 - và nhận được rất nhiều phản hồi tiêu cực về nó.

Có, "thuần túy" nói - bạn không nên sử dụng các cột khóa ngoài trực tiếp - bạn nên sử dụng đúng cách để xử lý với thực thể được tham chiếu thay thế. Nhưng trên thực tế, trong nhiều trường hợp - bạn không muốn phải đối phó với toàn bộ thực thể được tham chiếu, thực sự - chỉ cần đặt cột khóa ngoài sẽ thực hiện (ví dụ: khi nhập dữ liệu hoặc nhiều trường hợp khác). Vì vậy, trong khi có - Tôi đồng ý - đó là một chút của một hack ở lần, tôi thấy nó như là một cộng lớn mà bạn có tùy chọn để sử dụng cột khóa nước ngoài trong một thực thể - sau khi tất cả, ở cấp độ cơ sở dữ liệu , đó là những gì bạn sẽ được xử lý, quá. Vì vậy, theo ý kiến ​​của tôi, và tất cả các khuyến nghị tôi đã nghe từ các đồng nghiệp cũng sử dụng EF trong công việc nghiêm túc và tất cả blogger và EF rất kinh nghiệm (như Julie Lerman đã viết cuốn sách về EF) - lần lượt trên tùy chọn đó và bạn sẽ có được cả hai thế giới tốt nhất!

+0

Tôi đã bỏ chọn nó và tạo một bản in. Vì vậy, không có bản đồ cho các phím nước ngoài của tôi. Nhưng làm thế nào tôi có thể bao gồm các phím nước ngoài mà không cần tạo một edmx mới. Vì vậy, các khóa ngoại của tôi sẽ được lập bản đồ.http: //stackoverflow.com/questions/11517665/mapping-foreign-keys-on-ef-4-without-creating-a-new-edmx-file – kbvishnu

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