Linq-Gruppe durch die mit einem sub-query
Ich habe ein Objekt mit diesen drei Eigenschaften: ID, DATUM und NAME und Abfragen mit linq, woraus sich die gleichen Ergebnisse wie geschrieben, wenn in der sql-Anweisung unten.
SELECT ID, MAX(DATE), NAME
FROM TABLE
GROUP BY ID
Hier ist was ich bisher mit linq:
var grouped = from a in table
group a by a.ID into g
select new fooObject()
{
DATE= g.Max(a => a.DATE),
NAME= g.Select(a => a.Name).ToString(),
ID= g.Select(a => a.ID)
};
Vielen Dank im Voraus für jede Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Spalte 'TABELLE.NAME' ist ungültig in der select-Liste, weil es nicht enthalten ist, entweder in einer Aggregatfunktion oder die GROUP BY-Klausel.
Angesichts Ihrer aktualisierten Erklärung, hier ist mein Lösungsvorschlag. Ich habe auch den code aufgeräumt ein wenig.
Müssen Sie dann definieren Sie die
MaxBy
- Erweiterung-Methode. (Leider LINQ beinhaltet eine built-in.)Ich glaube, das sollte das sein, was Sie nun wollen. Lassen Sie mich wissen, wenn es erledigt die Arbeit für Sie.