我有 .NET Core 3.1 Web API 和 EF Core 3.1。我有帶作用域生命周期的 DbContext。
我有兩個服務,我在建構式中注入了 DbContext。當我更新 Service1 中的現有物體(而不是呼叫 SaveChanges,只是 context.Update)然后我可以在 Service2 的背景關系中看到一個更新的物體(當然是在一個請求期間)。
但
當我在 Service1 中創建一個新物體(而不是呼叫 SaveChanges,只是 context.Add)然后這個物體在 Service2 的背景關系中不存在。
為什么會發生這種情況,是否可以修復它以在我注入背景關系的任何服務中添加物體?
uj5u.com熱心網友回復:
當您發出資料庫查詢(不指定AsNoTracking選項)時,背景關系將丟棄它已經跟蹤的任何物體的加載資料,并回傳現有實體。這就是為什么您的服務會看到尚未保存的物體的更新詳細資訊。
但是,由于資料庫查詢不會回傳已添加但尚未保存的物體的任何詳細資訊,因此它們不會包含在查詢結果中。
如果你想看到掛起的更改,您將需要查詢的DbSet<TEntity>.Local集合來代替。
EF Core 中的更改跟蹤
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/313344.html
上一篇:在.NetCoreWebApi的POST請求中省略Id屬性
下一篇:在進入資料庫時??設定值
