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
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Gestire gli errori nelle Promise JavaScript con try()
Eseguire query in contemporanea con EF
Impostare automaticamente l'altezza del font tramite CSS
Ridurre il reflow ottimizzando il CSS
Utilizzare WebJobs su Linux con Azure App Service
Centralizzare gli endpoint AI Foundry con Azure API Management
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Potenziare la ricerca su Cosmos DB con Full Text Search
Integrare modelli AI in un workflow di GitHub
Gestire codice JavaScript con code splitting e lazy loading


