Nello script #654 abbiamo visto come fare in modo che Entity Framework generi un codice SQL che include direttamente il valore di una variabile al posto di usare un parametro. La versione 9 di EF introduce il metodo EF.Parameter che fa esattamente il lavoro opposto ovvero prende un valore costante e lo trasforma in una variabile nel SQL generato. Facciamo un esempio.
var people = await context.People .Where(e => e.LastName == "Mostarda") .ToListAsync();
In questo caso il codice SQL sarà una cosa come questa.
Select * from people where lastname = 'Mostarda'
La cosa potrebbe non rappresentare un grosso problema, ma se abbiamo diversi punti dove facciamo la stessa query ma con cognomi diversi, potremmo andare a inquinare la cache del query plan del database. In questi casi può tornare utile usare EF.Parameter per trasformare il valore costante in un parametro.
var people = await context.People
.Where(e => e.LastName == EF.Parameter("Mostarda"))
.ToListAsync();In questo caso il codice SQL sarà differente da prima perchè usa un parametro.
Select * from people where lastname = @lastname
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Importare un servizio esterno in .NET Aspire
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Importare repository da Bitbucket a GitHub Enterprise Cloud
Abilitare il rolling update su Azure Functions flex consumption
Canary release con .NET Aspire
Ricerca delle GitHub issue tramite operatori logici
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Blazor e Static Web Assets in .NET 10
Blue/Green Release in locale con .NET Aspire
Utilizzare le librerie native di .NET per comprimere uno o più file in formato ZIP
Definire il metodo di rilascio in .NET Aspire
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi


