Domanda

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.

 var result = _dbContext.LogEvent.GroupBy(x => x.EventLevel)
                                 .Select(g => new 
                                              { 
                                                  eventType = g.Key, 
                                                  total = g.Sum(i => i.Occurrences) 
                                              }) 
                                 .ToList();

Risposta accettata

aggiornato:

Il problema sotto riportato è stato chiuso ed è previsto per EF 2.1.0. Dovresti essere in grado di provarlo ora usando il pacchetto Anteprima!


Risposta originale:

Non sembra che questo sia attualmente supportato , ma sembra che qualcuno abbia visto questo post e abbia creato il problema collegato.

Il concetto è un po 'logico piuttosto complesso e EF7 è in una fase iniziale. .Net's GroupBy non si traduce direttamente in GROUP BY di SQL finché non lo segui con solo aggregati o la chiave in una Select . Se ti senti ambizioso, potresti lavorare per fornire una richiesta di pull o continuare a utilizzare EF6.


Risposta popolare

Probabilmente non sarà supportato in qualunque momento presto - sfortunatamente. Provocare molta frustrazione perché così tante persone non leggono le note di rilascio e, naturalmente, supporrebbero che funzionerebbe come prima (EF6 / Linq2SQL).

Mi rendo conto che può essere complesso per cose più complicate che coinvolgono intere entità, ma è un peccato non essere nemmeno supportato per query semplici come la tua :-(

https://blogs.msdn.microsoft.com/dotnet/2016/05/16/announcing-entity-framework-core-rc2/



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché