澄清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合法嗎? 是的,了解原因