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
La gestione della riconnessione al server di Blazor in .NET 9
Introduzione alle Container Queries
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Configurare automaticamente un webhook in Azure DevOps
Ricevere notifiche sui test con Azure Load Testing
Utilizzare l nesting nativo dei CSS
Eseguire script pre e post esecuzione di un workflow di GitHub
Migliorare l'organizzazione delle risorse con Azure Policy
Configuratione e utilizzo .NET Aspire CLI
Creare una libreria CSS universale: Immagini
Change tracking e composition in Entity Framework
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento