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
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Utilizzare Copilot con Azure Cosmos DB
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Utilizzare gRPC su App Service di Azure
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Generare token per autenicarsi sulle API di GitHub
Creare una libreria CSS universale: Clip-path
Eseguire i worklow di GitHub su runner potenziati
Usare una container image come runner di GitHub Actions
Routing statico e PreRendering in una Blazor Web App
Creare una custom property in GitHub
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework