In primo luogo, mi dispiace per un titolo brutto, non so davvero come si chiama.
So che posso usare context.Model.Where(a => a.Entity == "example").Count()
. Ma voglio qualcosa di più generico dove posso ottenere un conteggio di quante righe hanno la stessa voce in una delle colonne. Una foto di cosa intendo:
Il mio risultato finale che voglio ottenere è un elenco del conteggio come: 3, 1 ecc
Puoi utilizzare un'istruzione GroupBy
per raggruppare per un valore dei tuoi articoli, quindi Select
il risultato desiderato:
var result = await db.Model
.GroupBy(x => x.Age)
.Select(g => new {
Age = g.Key,
Count = g.Count(),
})
.ToListAsync();
Il risultato è un elenco di oggetti che hanno una proprietà Age
con il valore dell'età e una proprietà Count
con il numero di elementi con quel valore Age
.
Se vuoi solo i conteggi, puoi semplicemente restituirli direttamente dall'espressione Select
:
var result = await db.Model
.GroupBy(x => x.Age)
.Select(g => g.Count())
.ToListAsync();
Nota che questo ovviamente ti impedirà di dire che età rappresenta un conteggio individuale.