[英]Updates I made within the background worker do not appear in the database
我在項目中有兩個實體,如下所示,我可以在服務中更新這些實體。
UpdateAsync
服務:
UpdateAsync
方法按預期工作。
但是,雖然我寫了類似的代碼,但我在后台工作人員中所做的更改僅影響監控。 簡而言之,MonitoringStep 實體不會在后台工作人員中更新。
下面你可以看到我為后台工作者創建的方法的代碼:
var monitorRepository = workerContext.ServiceProvider.GetService<IMonitorRepository>();
var monitor = await monitorRepository.GetAsync(Guid.Parse("E3076832-D653-79BC-002B-39F8403C4EB0"));
monitor.SetName("stackoverflow-example");
monitor.MonitorStep.Url = "http://stackoverflow.com/";
await monitorRepository.UpdateAsync(monitor, true);
因此,Monitor 表中的 Name 屬性已更新,但 MonitorStep 表中的 Url 未更新。
下面你可以看到保存時發生的異常和我的實體的內容。
我想我缺少一些東西,你能幫我嗎?
我發現了問題。 其實問題出在DbContext.Attach(entity);
UpdateAsync
方法中的行。 在完成保存更改之前,此行不會保存更改。 我在做AutoSave
,實際上,我希望那部分能正常工作,但它沒有工作。 經過長時間的努力,我能夠創建一個UnitOfWork
並通過它保存更改。 謝謝您的回答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.