Angenommen, die folgende einfache Tabelle Design:LINQ to SQL, Aggregation von Unterabfrageergebnis
Tabelle Master (Id Bigint PK, Nachricht nvarchar (50))
Beispielreihe in Master
101 " foo“
Tabelle Detail (Id Bigint PK, MasterID Bigint FK zum Master PK, Code nvarchar (5))
Beispielzeilen im Detail
1001, 101, "A"
1002, 101, "B"
1003, 101, "C"
gewünschte Ausgabe von L2S Abfrage würde so etwas wie der folgenden-
Id, Code (s), Nachricht
seine 101, "A, B, C", "Foo"
Die folgende L2S-Abfrage gibt mir, was ich will, aber gibt es eine bessere Möglichkeit, es auszudrücken?
from m in Master
where m.Id == 101
select new
{
mi.Id,
Codes = string.Join(",", (from c in Detail
where c.MasterId == m.Id
select c.Code).ToArray()),
mi.Message
}