Linq-Gruppe auf einem Multi-Level-Objekt mit select-Anweisung
-
02-10-2019 - |
Frage
Ich habe 3-Datensatz Objekte bekommt, die miteinander unter Verwendung von Entitätssatz Objekten verschachtelt sind. Ich bin die Auswahl der Daten, wie diese
var newList = from s in MainTable
from a in s.SubTable1 where a.ColumnX = "value"
from b in a.Detail where b.Name = "searchValue"
select new {
ID = s.ID,
Company = a.CompanyName,
Name = b.Name,
Date = s.DueDate
Colour = b.Colour,
Town = a.Town
};
und das funktioniert gut, aber das Problem ist, es gibt viele Datensätze in der Detail Objekt-Liste / Tabelle für jeden Wert Namen, damit ich eine Last von doppelten Zeilen erhalten und damit möchte ich nur pro b.Name einen Datensatz angezeigt werden soll. Ich habe versucht, setzen
group s by b.Name into g
vor der Auswahl, aber dann scheint dies die mich wählen zu stoppen damit die Spalten auswählen Ich möchte (es gibt mehr, in der Praxis). Wie verwende ich die Gruppe Befehle unter diesen Umständen, während immer noch die Ausgänge Zeilen in einem „flachen“ Format zu halten?
Lösung
Anfügen Kommentar als Antwort auf nahe Frage: - Natürlich, wenn Sie Gruppe Ihre Ergebnisse, man kann eine Spalte eines Kindes erhalten wählen, weil das ist, es kann mehr sein als ein Childs und Sie müssen ein Aggregat Spalte zum Beispiel geben Sie die Summe, max ETX -