Per quanto LINQ sia potente, non tutte le query di cui abbiamo bisogno possono essere scritte tramite questo linguaggio. Inoltre, a volte il motore di generazione SQL da LINQ genera codice poco performante. In questi casi è conveniente creare direttamente a mano il codice SQL che vogliamo eseguire sul database e farci comunque restituire oggetti.
Per fare questo dobbiamo utilizzare il metodo SqlQuery della classe DbSet. Questo metodo accetta in input la stringa SQL da eseguire sul database e restituisce gli oggetti del tipo del DbSet. Nel prossimo esempio vediamo come utilizzare questo metodo.
var people = context.People.SqlQuery("SELECT * FROM people").ToList();
Nel caso in cui vogliamo passare dei parametri alla nostra query, possiamo utilizzare la seguente sintassi:
var people = context.People.SqlQuery("SELECT * FROM people WHERE name = @p0", "stefano").ToList();
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Utilizzare WebAssembly con .NET, ovunque
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Disabilitare automaticamente un workflow di GitHub (parte 2)
- Paginare i risultati con QuickGrid in Blazor
- Ottimizzazione dei block template in Angular 17