Sebbene LINQ e il suo motore di traduzione in SQL siano molto potenti, a volte capita di dover scrivere direttamente codice SQL per motivi prestazionali o perchè è più semplice scrivere la query in SQL che in LINQ. In quesi casi torna in aiuto il metodo FromSql del DbSet. Questo metodo accetta in input una query SQL che viene eseguita sul server e che viene mappata direttamente sul tipo del DbSet.
var people = context.People
.FromSql("SELECT * FROM dbo.Person")
.ToList();
Questa query estrae tutte le persone e le mappa verso il tipo Person che è il tipo del DbSet People.
Questo metodo accetta anche parametri con la stessa sintassi dello String.Format.
var people = context.People
.FromSql("SELECT * FROM dbo.Person where id = {0}", 10)
.ToList();
Sebbene la sintassi possa ingannare, in realtà Entity Framework Core non usa lo String.Format, bensì converte il tutto in un normale parametro così da evitare qualunque problema di SqlInjection.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare DeepSeek R1 con Azure AI
Creare agenti facilmente con Azure AI Agent Service
Utilizzare gRPC su App Service di Azure
Usare le navigation property in QuickGrid di Blazor
Proteggere le risorse Azure con private link e private endpoints
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Anonimizzare i dati sensibili nei log di Azure Front Door
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Creare un webhook in Azure DevOps
Utilizzare i variable font nel CSS
.NET Conference Italia 2024
Utilizzare una qualunque lista per i parametri di tipo params in C#
I più letti di oggi
- Anonimizzare i dati sensibili nei log di Azure Front Door
- Annunciato Visual Studio 2013: la prima preview a fine mese a Build
- Loggare le query più lente con Entity Framework
- Utilizzare WhenEach per processare i risultati di una lista di task
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!