Sto cercando di eseguire il seguente codice, ma quando controllo il profiler SQL sembra che esegua una selezione completa sulla tabella e quindi il raggruppamento dopo che restituisce tutti i risultati dal database. Qualsiasi aiuto è apprezzato.Entity Framework 7 group di
var result = _dbContext.LogEvent.GroupBy(x => x.EventLevel)
.Select(g => new
{
eventType = g.Key,
total = g.Sum(i => i.Occurrences)
})
.ToList();
puoi pubblicare il codice SQL generato vedi nel profiler? –
Fa semplicemente un "Seleziona colonna1, colonna2, colonna3, colonna4 Da LogEvent". Nessun raggruppamento o somma nell'SQL. – RickJames
Mi aspetterei di vedere che se facessi qualcosa come '_dbContext.LogEvent. AsEnumerable() ... 'o' _dbContext.LogEvent.ToList() ... 'Mentre la tua query è scritta, dovrebbe essere generato l'SQL appropriato. Puoi provare: ' var q uery = = _dbContext.LogEvent.GroupBy (x => x.EventLevel) .Select (g => new {eventType = g.Key, total = g.Sum (i => i.Occurrences)}); Debug.Write (query.ToString()); ' –