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
Fornire parametri ad un Web component HTML
Utilizzare l nesting nativo dei CSS
Creare agenti facilmente con Azure AI Agent Service
Generare un hash con SHA-3 in .NET
Generare velocemente pagine CRUD in Blazor con QuickGrid
Filtering sulle colonne in una QuickGrid di Blazor
Creare una libreria CSS universale: i bottoni
Generare una User Delegation SAS in .NET per Azure Blob Storage
Ottimizzare le performance usando Span<T> e il metodo Split
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Eseguire i worklow di GitHub su runner potenziati