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
Gestire gli accessi con Token su Azure Container Registry
Effettuare il refresh dei dati di una QuickGrid di Blazor
Gestione dell'annidamento delle regole dei layer in CSS
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Definire stili a livello di libreria in Angular
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Path addizionali per gli asset in ASP.NET Core MVC
Creare una libreria CSS universale: Immagini
Ricevere notifiche sui test con Azure Load Testing
Gestione degli eventi nei Web component HTML
I più letti di oggi
- Creare agenti facilmente con Azure AI Agent Service
- Loggare le query più lente con Entity Framework
- Rendere i propri workflow e le GitHub Action utilizzate più sicure
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- Disabilitare le run concorrenti di una pipeline di Azure DevOps
- Gestione degli eventi nei Web component HTML
- Fornire parametri ad un Web component HTML
- Introduzione ai web component HTML
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9