Ich habe eine harte Zeit zu verstehen, wie ich eine LINQ-Abfrage bilden kann, um das folgende zu tun:
Ich habe eine Tabelle CallLogs und möchte ein einziges Ergebnis zurückbekommen, das den Anruf mit der längsten Dauer darstellt.
Die Zeile sieht wie folgt aus:
[ID] [RemoteParty] [Dauer]
Es kann mehrere Zeilen für dieselbe RemoteParty geben, von denen jede einen Anruf mit einer bestimmten Dauer darstellt. Ich möchte wissen, welche RemoteParty die längste Gesamtdauer hat.
Mit LINQ bin ich so weit gekommen:
var callStats = (from c in database.CallLogs
group c by c.RemoteParty into d
select new
{
RemoteParty = d.Key,
TotalDuration = d.Sum(x => x.Duration)
});
Jetzt habe ich also ein gruppiertes Ergebnis mit der Gesamtdauer für jede RemoteParty, aber ich brauche das maximale Einzelergebnis.
[DistinctRemoteParty1] [Dauer]
[DistinctRemoteParty2] [Dauer]
[DistinctRemotePartyN] [Dauer]
Wie kann ich die Abfrage ändern, um dies zu erreichen?