runliuv

runliuv@cnblogs

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

场景:插入了一条数据到数据库,这条数据会有其它程序修改,接着程序想获取最新数据。此时不加额外处理,取的仍是旧的。

 

t_task ta = new t_task();
ta.item_id = item.item_id;
ta.server_id = item.server_id;
ta.win_service_update_dll = false;
db.t_task.Add(ta);
db.SaveChanges();
long taId = ta.id;

System.Threading.Thread.Sleep(9000);
// 使用 AsNoTracking(),强制从数据库中取数据,而不是上下文。
var myTa = db.t_task.AsNoTracking().FirstOrDefault(x => x.id == taId);

 

 

解决方法:使用 AsNoTracking().

如:

db.t_task.AsNoTracking().FirstOrDefault(x => x.id == taId);

 

posted on 2022-05-12 21:09  runliuv  阅读(85)  评论(0编辑  收藏  举报