假如数据库繁忙 EF无法去数据库更新数据,新保存的数据,EF再去查可以查到吗 ?
比如 现在数据库繁忙 ,
程式在A表查询数据,没有找到
程序自己新建了一条数据保存到A表,
程序在A表查询数据,(可以找到自己新加的数据吗?)
假如可以查新缓存的数据,那么
网上搜到使用
EF默认会缓存查询过的数据,不想要它缓存就使用DbSet上的.AsNoTracking() 比如原来是context.Users.Where(...)改成context.Users.AsNoTracking().Where(...)
这种方式可以查到新缓存的数据吗?
不是屁话,假设包裹还在路上你去快递点拿包裹,你说能拿到吗?即使包裹到达快递点,但是分拣员和操作员没有录库,你问操作员有包裹不,你说操作员怎么回答你?—— 对,有一种情况操作员可以回答你,他除非给你去一堆包裹中一件一件的给你找。
意思就是与数据库完成新一轮交互之前,应该是拿不到数据喽,那有啥解决办法让他知道自己添加过了呢
@夜里挑键戳灯:
1.提高甲方的应付能力;
2.让乙方多等;
你去银行、医院...不都这么处理。
在路上的你明显是处理不到的;到达了排队处理的——库管还得校验看能不能放进去,那么怎么办?—— 处理快点。
那又有很多方式 —— 减少流程,增加处理点...
@花飘水流兮: 导致繁忙的原因已经优化,但是担心下次还出现类似的问题额,如果使用全局变量来缓存 这边新增的数据,在新增的时候与全局变量进行校验 可以有效的防止不
应该统一使用EF。
如果是同一个EF管理实例,那么会使用缓存的数据。
如果不是同一个EF管理实例,那么将出现冲突:出现重复的数据。
如果是同一个 DbContext 实例,通过主键可以从 EF 的缓存中查到