我遇到了一个奇怪的问题,这是我以前从未遇到过的。我使用Entity Framework来检索我的记录。
我有以下调用:
var dbOrganisation = repository.DbOrganisation.FirstOrDefault(c => c.Id == id);
我希望此调用不要进行缓存。因此,当我进行此调用时,我期望它会查询数据库并检索最新的
DbOrganisation
对象。但实际情况并非如此。我在相对较短的时间内(约5-10秒)连续两次调用此方法。但是在这段时间内,此表中的小数值可能会被第三方更改。
然而,即使该值发生了更改,
FirstOrDefault
调用也仍会检索未更新的版本。示例情况:
- 我进行
FirstOrDefault
调用,并查看字段Credits
的小数值为50 - 第三方将
Credits
更改为45 - 10秒后,我再次进行
FirstOrDefault
调用,但DbOrganisation
中仍然具有50个积分
我做错了什么?我以为默认情况下
FirstOrDefault
调用不会被缓存?