首页 新闻 会员 周边 捐助

.NET EF缓存问题

0
悬赏园豆:20 [已解决问题] 解决于 2019-05-11 10:17

假如数据库繁忙 EF无法去数据库更新数据,新保存的数据,EF再去查可以查到吗 ?
比如 现在数据库繁忙 ,
程式在A表查询数据,没有找到
程序自己新建了一条数据保存到A表,
程序在A表查询数据,(可以找到自己新加的数据吗?)

假如可以查新缓存的数据,那么

网上搜到使用
EF默认会缓存查询过的数据,不想要它缓存就使用DbSet上的.AsNoTracking() 比如原来是context.Users.Where(...)改成context.Users.AsNoTracking().Where(...)

这种方式可以查到新缓存的数据吗?

夜里挑键戳灯的主页 夜里挑键戳灯 | 菜鸟二级 | 园豆:299
提问于:2019-05-08 11:18
< >
分享
最佳答案
0

不是屁话,假设包裹还在路上你去快递点拿包裹,你说能拿到吗?即使包裹到达快递点,但是分拣员和操作员没有录库,你问操作员有包裹不,你说操作员怎么回答你?—— 对,有一种情况操作员可以回答你,他除非给你去一堆包裹中一件一件的给你找。

收获园豆:20
花飘水流兮 | 专家六级 |园豆:13615 | 2019-05-08 11:42

意思就是与数据库完成新一轮交互之前,应该是拿不到数据喽,那有啥解决办法让他知道自己添加过了呢

夜里挑键戳灯 | 园豆:299 (菜鸟二级) | 2019-05-08 11:45

@夜里挑键戳灯:
1.提高甲方的应付能力;
2.让乙方多等;
你去银行、医院...不都这么处理。
在路上的你明显是处理不到的;到达了排队处理的——库管还得校验看能不能放进去,那么怎么办?—— 处理快点。
那又有很多方式 —— 减少流程,增加处理点...

花飘水流兮 | 园豆:13615 (专家六级) | 2019-05-08 11:57

@花飘水流兮: 导致繁忙的原因已经优化,但是担心下次还出现类似的问题额,如果使用全局变量来缓存 这边新增的数据,在新增的时候与全局变量进行校验 可以有效的防止不

夜里挑键戳灯 | 园豆:299 (菜鸟二级) | 2019-05-08 12:05
其他回答(2)
0

应该统一使用EF。

如果是同一个EF管理实例,那么会使用缓存的数据。

如果不是同一个EF管理实例,那么将出现冲突:出现重复的数据。

triout | 园豆:13 (初学一级) | 2019-05-08 12:36
0

如果是同一个 DbContext 实例,通过主键可以从 EF 的缓存中查到

dudu | 园豆:30778 (高人七级) | 2019-05-08 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册