Clarification sur ce qui est exactement mis en cache par EF Plus


Question

Si j'ai une table de demandes de service et que j'exécute le code suivant:

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

Serait-ce la même chose que de dire enregistrer cette requête:

SELECT * FROM ServiceRequests WHERE ID = 12345

ou est-ce la même chose que de dire:

SELECT * FROM ServicesRequests (Puis, à partir de cette nouvelle donnée mise en cache, trouvez l'identifiant 12345).

En d'autres termes, que cache exactement l'utilisation de la ligne de code ci-dessus? Et si je reviens plus tard avec un nouvel ID, le serveur interrogera-t-il le cache ou ira-t-il à la base de données, car il ne sauvegardera que la première fiche de cet ID?

Réponse acceptée

Le résultat est mis en cache.

Dans votre cas, le résultat de la valeur booléenne est mis en cache et non l'entité.

Si vous interrogez avec un ID différent, la base de données sera interrogée et le résultat sera également mis en cache avec l'autre résultat.





Sous licence: CC-BY-SA
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi