Gestire l'eager loading in Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

Entity Framework Core permette di caricare una entity e le sue entity collegate in un solo comando. Questa capacità torna utile, ad esempio, quando vogliamo caricae un ordine, i suoi dettagli e il cliente che lo ha piazzato. Per fare questo Entity Framework Core usa una sintassi basata su LINQ simile a quella adottata in Entity Framework 6.

Il metodo da invocare è Include che accetta in input la lambda che rappresenta la proprietà da precaricare.

var ordine = context.Ordini
  .Include(o => o.Dettagli)
  .Include(o => o.Cliente)
  .ToList();

In questo caso abbiamo caricato l'ordine e due entity direttamente collegate all'ordine. possiamo anche andare più a fondo e caricare entity a un livello più basso. Ad esempio possiamo caricare anche il prodotto collegato al dettaglio dell'ordine. per fare questo dobbiamo usare il metodo ThenInclude.

var ordine = context.Ordini
  .Include(o => o.Dettagli)
    .ThenInclude(d => d.Prodotto)
  .Include(o => o.Cliente)
  .ToList();

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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