Quando usiamo la classe ObjectContext e i tipi a essa associati, per caricare un grafo di oggetti in un'unica query dobbiamo utilizzare il metodo Include della classe ObjectSet<T>. Questo metodo accetta in input una stringa che specifica le proprietà che puntano agli altri oggetti che vogliamo caricare. Sebbene questo metodo sia molto comodo, il fatto di specificare le proprietà da caricare come stringhe può portare ad errori che possono essere scovati solo in fase di esecuzione.
Quando usiamo la classe DbContext e i tipi a essa associati, possiamo utilizzare l'extension method Include che estende la classe DbQuery (che è la classe base del tipo DbSet<T>) per scrivere include tipizzate tramite lambda expression così come nel seguente codice.
var result = ctx.Orders.Include(o => o.Details).ToList();
L'extension method Include è situato in una classe del namespace System.Data.Entity quindi questo namespace va incluso nella classe tramite la direttiva using/imports.
In questo modo ogni errore di digitazione viene controllato in fase di compilazione evitando così di avere errori a runtime.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare le collection expression per inizializzare una lista di oggetti in C#
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Effettuare il binding di date in Blazor
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Disabilitare automaticamente un workflow di GitHub (parte 2)
Generare file PDF da Blazor WebAssembly con iText
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Utilizzare gli snapshot con Azure File shares
Implementare l'infinite scroll con QuickGrid in Blazor Server
Creare alias per tipi generici e tuple in C#
Ottimizzazione dei block template in Angular 17
Gestire i null nelle reactive form tipizzate di Angular
I più letti di oggi
- Nuova versione per jQuery e prima alpha per jQuery Mobile
- Paginare i risultati con QuickGrid in Blazor
- Utilizzare il trigger SQL con le Azure Function
- Eliminare una determinata proprietà da un oggetto JavaScript
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Modern web apps with Blazor