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
Creare un agente A2Acon Azure Logic Apps
Utilizzo del persistent state di Blazor nel prerendering
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Configurare OpenAI in .NET Aspire
Keynote .NET Conference Italia 2025
Ottimizzare le API in ASP.NET con Feature Flags
Effettuare chiamate API tramite GitHub App
Le cron expression di un workflow di GitHub
Response streaming con Blazor e .NET 10
Gestire trasferimenti cloud con Azure Storage Mover
Controllare la velocità di spostamento su una pagina HTML
Validazione personalizzata nelle Minimal API di ASP.NET Core


