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?
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.