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
Sfruttare al massimo i topic space di Event Grid MQTT
Utilizzare Azure AI Studio per testare i modelli AI
Creare una libreria CSS universale: Immagini
Gestione dei nomi con le regole @layer in CSS
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Ordine e importanza per @layer in CSS
Evitare il flickering dei componenti nel prerender di Blazor 8
Creare una libreria CSS universale: Cards
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Miglioramenti agli screen reader e al contrasto in Angular
Implementare l'infinite scroll con QuickGrid in Blazor Server
Gestire liste di tipi semplici con Entity Framework Core