![](/img/trans.png)
[英]EF Core 2 throws exception on SaveChanges, after first update for related entities
[英]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.