Quando eseguiamo una query LINQ in Entity Framework Core, questo la compila e ne mette in cache il risultato della compilazione così da non doverla ricompilare ogni volta in quando il processo di compilazione di una query LINQ è molto oneroso. Tuttavia, se una query viene eseguita molto spesso, questo significa che Entity Framework Core fa altrettanto spesso il lookup della query in cache per estrarne il risultato compilato. Sebbene il lookup sia estremamente veloce, questo ha comunque un costo che per query usate di frequente può diventare oneroso.
Per ottimizzare ulteriormente le performance possiamo precompilare la query via codice e associarne il risultato della compilazione a una variabile così da utilizzarla direttamente nel codice.
private static Func<MyContext, int, Person> _getPersonById =
EF.CompileQuery((MyContext ctx, int id) =>
ctx.People.First(p => p.Id == id));
using (var ctx = new MyContext())
{
var person = _getPersonById(ctx, 1);
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Logica Graceful Degradation in HTML e CSS
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Proteggere l'endpoint dell'agente A2A delle Logic App
Blazor e Static Web Assets in .NET 10
Leggere i parametri da riga di comando in una file based app .NET
Shadow DOM open e closed sulla gestione delle pagine
Introduzione a GitHub Copilot CLI
Evidenziare una porzione di testo in un pagina dopo una navigazione
Rendere affidabile lo scale out su Azure App Service
Evitare la compressione degli artefatti in un workflow di GitHub
Response streaming con Blazor e .NET 10
Abilitare il rolling update su Azure Functions flex consumption


