Klarstellung, was genau von EF Plus gepuffert wird


Frage

Wenn ich eine Tabelle mit Serviceanfragen habe und den folgenden Code darauf ausführen:

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

Wäre das das Gleiche wie das Speichern dieser Abfrage:

SELECT * FROM ServiceRequests WHERE ID = 12345

oder ist es dasselbe wie zu sagen:

SELECT * FROM ServicesRequests (Dann von diesen neu zwischengespeicherten Daten ID 12345 finden).

Mit anderen Worten, was genau ist in Bezug auf die Verwendung der obigen Codezeile im Cache? Und wenn ich später mit einer neuen ID zurückkomme, wird es dann den Cache abfragen oder zur Datenbank gehen, weil es nur den ersten ID-Datensatz beim ersten Mal gespeichert hat?

Akzeptierte Antwort

Das Ergebnis wird zwischengespeichert.

In Ihrem Fall wird das Ergebnis des booleschen Werts zwischengespeichert und nicht die Entität.

Wenn Sie mit einer anderen ID abfragen, wird die Datenbank abgefragt und das Ergebnis mit dem anderen Ergebnis zwischengespeichert





Lizenziert unter: CC-BY-SA
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum