Chiarimento su cosa sia esattamente memorizzato nella cache da EF Plus


Domanda

Se ho una tabella di richieste di servizio e ho eseguito il seguente codice su di esso:

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

Sarebbe come dire salvare questa query:

SELECT * FROM ServiceRequests WHERE ID = 12345

o è lo stesso che dire:

SELEZIONA * DA ServiziRichieste (quindi da dati memorizzati nella cache appena trovati 12345 id).

In altre parole, cosa si trova esattamente nella cache in merito all'utilizzo della riga di codice sopra? E se torno più tardi con un nuovo ID, allora interrogherà la cache o andrà al database perché ha salvato solo il primo record ID la prima volta?

Risposta accettata

Il risultato è memorizzato nella cache.

Nel tuo caso, il risultato del valore booleano è memorizzato nella cache e non l'entità.

Se si esegue una query con un ID diverso, interrogherà il database e memorizzerà il risultato nella cache anche con l'altro risultato





Autorizzato sotto: CC-BY-SA
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché