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
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Integrare SQL Server in un progetto .NET Aspire
Testare l'invio dei messaggi con Event Hubs Data Explorer
Aggiornare a .NET 9 su Azure App Service
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Configurare e gestire sidecar container in Azure App Service
Gestione file Javascript in Blazor con .NET 9
Introduzione ai web component HTML
Referenziare un @layer più alto in CSS
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web