澄清EF Plus缓存的内容


如果我有一个服务请求表,我在其上运行以下代码:

var serviceRequest = await _ctx.ServiceRequests.DeferredAny(t => t.Id == h.Id).FromCacheAsync("ServiceRequestByID");

这与保存此查询的说法相同:

SELECT * FROM ServiceRequests WHERE ID = 12345

或者说是这样说:

SELECT * FROM ServicesRequests(然后从新缓存的数据中找到id 12345)。

换句话说,在使用上面的代码行时,究竟缓存了什么?如果我稍后带着新的ID回来,那么它会查询缓存还是去数据库,因为它第一次只保存了第一个ID的记录?

一般承认的答案

结果是缓存的。

在您的情况下,布尔值结果被缓存而不是实体。

如果使用不同的ID进行查询,它将查询数据库并缓存结果以及其他结果





许可下: CC-BY-SA
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因