簡體   English   中英

在什么情況下我需要實體框架中的外鍵和導航屬性

[英]In what scenarios do I need foreign keys AND navigation properties in entity framework

我的訂單類有:

public int CustomerId { get; set; }

public Customer Customer { get; set; }

我真的需要這兩個屬性來建立關系嗎?

我沒有使用斷開連接的實體,我使用代碼第一種方法。

根據Julia Lerman的書: Programming Entity Framework:DbContext ,不同之處在於更新導航屬性的難度。 在第85頁中,她建議“如果在N-Tier場景中有一件事可以讓你的生活變得更輕松,那就是為模型中的關系公開外鍵屬性。” 該書包括兩種情景的樣本。

原因是包含外鍵屬性告訴實體框架使用外鍵關聯,這比在需要更新關系時使用所謂的獨立關聯更簡單,即在您的示例中將訂單從一個客戶更改為另一個客戶。 使用外鍵關聯,您需要做的就是更改CustomerId。 如果沒有CustomerId外鍵,則需要更多步驟。 獨立關聯使用ObjectStateManager,解釋代碼優先:獨立關聯與外鍵關聯? ObjectStateManager很復雜,甚至沒有從DbContext API公開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM