澄清 EF Plus 究竟缓存了什么
Clarification on what exactly is cached by EF Plus
如果我有 table 个服务请求并且我 运行 上面有以下代码:
var serviceRequest = await _ctx.ServiceRequests.DeferredAny(t => t.Id == h.Id).FromCacheAsync("ServiceRequestByID");
这是否与保存此查询相同:
SELECT * 来自 ServiceRequests,其中 ID = 12345
或者等于说:
SELECT * FROM ServicesRequests(然后从新缓存的数据中找到 id 12345)。
也就是说,上面这行代码到底缓存了什么?如果我稍后带着新 ID 回来,那么它会查询缓存还是去数据库,因为它第一次只保存了第一个 ID 的记录?
结果已缓存。
在你的例子中,布尔值结果被缓存而不是实体。
如果您使用不同的 ID 查询,它将查询数据库并将结果与其他结果一起缓存
如果我有 table 个服务请求并且我 运行 上面有以下代码:
var serviceRequest = await _ctx.ServiceRequests.DeferredAny(t => t.Id == h.Id).FromCacheAsync("ServiceRequestByID");
这是否与保存此查询相同:
SELECT * 来自 ServiceRequests,其中 ID = 12345
或者等于说:
SELECT * FROM ServicesRequests(然后从新缓存的数据中找到 id 12345)。
也就是说,上面这行代码到底缓存了什么?如果我稍后带着新 ID 回来,那么它会查询缓存还是去数据库,因为它第一次只保存了第一个 ID 的记录?
结果已缓存。
在你的例子中,布尔值结果被缓存而不是实体。
如果您使用不同的 ID 查询,它将查询数据库并将结果与其他结果一起缓存