Grupowanie wyników

M8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 151
0

Cześć

Mam zapytanie które zwraca dane z bazy

Kopiuj
		var res = _db.DataFromSensor.Where(p=>(p.recTime >= startDate & p.recTime <= endDate))
                        .Select(x=> new {
                            model = x.Model.name,
                            val1 = x.value1,
                            val1 = x.value2
                        })
                        // .AsEnumerable()
                        // .GroupBy(x=>x.model)
                        .ToList();

W wyniku dostaję tablicę:

Kopiuj
[
0: {model: "CRW", val1: 7.8, val2: 2.8}
1: {model: "CRW", val1: 8.1, val2: 2.9}
2: {model: "CRX", val1: 8.1, val2: 2.7}
3: {model: "CRX", val1: 8.3, val2: 2.7}
]

Jak pogrupować wynik i zwrócić w postaci:

model: "CRW"
Lista wyników jako tablica
model: "CRX"
Lista wyników jako tablica

Po klauzurze GroupBy() nie mam dostępu do nazw tego co jest w Select()
Po stronie klienta przydały by się już zagregowane dane, znacznie ułatwiło by mi to przetwarzanie ich.

ŁS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Na przykład tak:

Kopiuj
var res = _db.DataFromSensor.Where(p=>(p.recTime >= startDate & p.recTime <= endDate))
                        .Select(x=> new {
                            model = x.Model.name,
                            val1 = x.value1,
                            val1 = x.value2
                        })
                        .ToLookup(x => x.Model.name)

ILookup jest podobny do IDictionary, tyle że może przechowywać wiele wartości dla jednego klucza.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.