Utilizzare il metodo Count di Entity Framework per contare le entità collegate senza caricarle in memoria

di Stefano Mostarda, in LINQ, Entity Framework,

Molto spesso capita di voler sapere il numero di elementi di una proprietà di tipo lista senza però voler caricare gli elementi. Prendiamo come esempio una classe Person con una proprietà Children che contiene la lista dei figli. Se abbiamo un'istanza di Person già caricata nel contesto e vogliamo sapere il numero dei figli senza caricarli in memoria, possiamo ricorrere al seguente script.

var person = ctx.People.Find(1);
 
var childrenCount = context.Entry(person)
  .Collection(b => b.Children)
  .Query()
  .Count();

In questo snippet prima recuperiamo l'entity dal database e poi eseguiamo una query per calcolare il numero di figli. La query è suddivisa in diversi passi; prima di tutto recuperiamo l'entry dal contesto, poi recuperiamo la proprietà (Children) e infine lanciamo la query che ritorna il numero degli elementi (metodi Query e Count).

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