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
Utilizzare il Nullish Coalescing con TypeScript
Esecuzione condizionale dei template nelle pipeline YAML di Azure DevOps
Rendere editabile un contenuto testuale in Angular
Creare una libreria di Controller in ASP.NET Core Web API
Un pattern per gestire il pre-rendering in componenti Blazor complessi
The .NET 5 & C# 9 Show
Sviluppare applicazioni con supporto al doppio schermo con Xamarin
Utilizzare i CSS pseudo-element
Utilizzare i Workspace con NPM 7
Un componente per gestire lo stato della connessione di rete in Blazor WebAssembly
Abilitare il drag&drop delle righe di una tabella in Angular
Sviluppare codice nativo per Windows e Linux con .NET Core
I più letti di oggi
- Blazor Conference 2021 - Online
- Track 1: @dbochicchio e @cristiancivera con 'Blazor for absolute beginners'Track 2: @apomic80 con 'Dynamic UI with Blazor WebAssembly'Track 3: #aspilive Seguici live su => https://aspit.co/BlazorConf-21
- Track 1: @GiampaoloTUCCI con 'Progressive Web Apps with Blazor'Track 2: @dottor con 'Blazor Tips&Tricks'Track 3: #aspilive Seguici live su => https://aspit.co/BlazorConf-21
- Track 1: @cristiancivera con 'Using Components in Blazor'Track 2: @crad77 con 'Blazor and ASP.NET Core with GraphQL and HotChocolate'Track 3: #aspilive Seguici live su => https://aspit.co/BlazorConf-21