Nella service release 8.0.2, EF introduce un nuovo metodo: EF.Constant. Questo metodo scrive il valore di un parametro direttamente nel codice SQL generato da Entity Framework invece che usare la parametrizzazione nativa SQL.
Prendiamo come esempio le seguenti query.
public async Task Method(int age)
{
var people1 = await ctx.People
.Where(p => p.Age > age)
.ToListAsync();
var people2 = await ctx.People
.Where(p => p.Age > EF.Constant(age))
.ToListAsync();
}Nel primo caso, il valore della variabile age viene passato come parametro SQL, mentre nel secondo caso il valore di age viene direttamente scritto nel codice.
//query 1 select * from people where age = @age //query 2 select * from people where age = 20
In linea generale, mettere nella stringa SQL un parametro non è il massimo in quanto si genera un query plan per ogni valore di age con conseguenti effetti sulle perforance del database. Tuttavia, possono esistere casi in cui mettere inline il valore può tornare utile e quindi avere EF.Constant è un'arma in più.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Shadow DOM open e closed sulla gestione delle pagine
Evitare la compressione degli artefatti in un workflow di GitHub
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Self-healing degli unit test con Copilot in GitHub
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Response streaming con Blazor e .NET 10
Come automatizzare il download dei report di billing da GitHub Enterprise
Usare il metodo nameof con un tipo generico in C# 14
Breaking the Legacy Barrier: how to Use AI to Modernize Applications
Arricchire l'interfaccia di .NET Aspire
Integrare il Docker Model Runner in un workflow di GitHub
DevSecOps per .NET: dalla teoria alla pratica


