簡體   English   中英

EF不會在SaveChanges上更新相關實體

[英]EF doesn't update related entities on SaveChanges

我正在通過延遲加載將EF6 MVC項目從ObjectContext遷移到DbContext。

使用ObjectContext,我可以執行以下操作:

// Create a new user:
 User u = new User();
 u.LineManagerID = 42;   // Set foreign key

 db.Users.Add(u);
 db.SaveChanges();

// get property of related entity as set above by foreign key 
 User lm = u.LineManager;

使用DbContext,即使正確保存了新實體, u.LineManager為null,並且我懷疑是否對數據庫進行了另一次調用也可以。

延遲加載和動態代理均已啟用。

為什么新實體無法正確刷新?

請幫忙! 我可以看到這種遷移將比我想象的要困難得多!!

編輯 -我應該補充一點,我正在使用數據庫優先代碼生成

您必須將LineManager屬性設置為virtual ,才能被延遲加載代理LineManager (這已經歸功於代碼生成)

不幸的是,當您直接使用new創建對象時,您只是在創建一個普通對象-而不是具有所有延遲加載功能的代理對象。 要獲得這些,您需要使用工廠方法來創建您的對象:

User u = db.Users.Create();

我對博客文章中記錄的導航屬性和外鍵做了一些試驗。

暫無
暫無

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

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