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
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Short-circuiting della Pipeline in ASP.NET Core
Eseguire attività con Azure Container Jobs
Utilizzare i primary constructor in C#
Semplificare il deployment di siti statici con Azure Static Web App
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Eseguire una GroupBy per entity in Entity Framework
Utilizzare flat e flatMap per appiattire array innestati in array
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Creare un'applicazione React e configurare Tailwind CSS