1

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

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 的记录?

4

1 回答 1

1

结果被缓存。

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

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

于 2018-05-01T10:54:27.713 回答