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 lo spread operator con i collection initializer in C#
Generare file per il download da Blazor WebAssembly
Copiare automaticamente le secret tra più repository di GitHub
Sostituire la GitHub Action di login su private registry
Eseguire operazioni sui blob con Azure Storage Actions
Aggiungere interattività lato server in Blazor 8
Specificare il versioning nel path degli URL in ASP.NET Web API
Utilizzare Model as a Service su Microsoft Azure
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Eseguire una query su SQL Azure tramite un workflow di GitHub
Reactive form tipizzati con modellazione del FormBuilder in Angular
Configurare policy CORS in Azure Container Apps