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
Scrivere selettori CSS più semplici ed efficienti con :is()
Centralizzare gli endpoint AI Foundry con Azure API Management
Montare Azure Blob Storage su Linux con BlobFuse2
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Importare un servizio esterno in .NET Aspire
Integrare Agenti A2A in Azure API Management
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Utilizzare i command service nei test con .NET Aspire
Escludere alcuni file da GitHub Copilot
Ridurre il reflow ottimizzando il CSS
.NET Aspire per applicazioni distribuite
Definire il colore di una scrollbar HTML tramite CSS
I più letti di oggi
- .NET Campus - Roma
- .NET Conference Italia 2022 - Track in presenza - Milano
- Release Candidate 1 di Internet Explorer 8
- Windows Azure in versione 1.0: annunciata la piattaforma Microsoft per il cloud computing
- Disponibile la June 2011 CTP di Entity Framework
- Microsoft Security Bulletin MS02-043
- .NET vs J2EE? Secondo Microsoft non ci sono paragoni


