Casablanca: LINQ

Beitrag lesen

Hi,

vielen Dank. Sehr gute Idee. Die Anweisung sieht jetzt so aus:

  
var values = query.SelectMany(n => n).GroupBy(gr => gr.TimeStamp.Day).Select(gr => gr.Sum(g => g.DeviceDay)).ToList();  

Da gibt es zwei Probleme:

1. Die Tage, die nicht in allen Array vorhanden sind, tauchen merkwürigerweise nicht in der Merge-List uaf.
2. Mein GroupBy() sollte eingentlich so aussehen;

  
.GroupBy(gr => gr.Id, gr.MyDate.Day, gr.MyValue).Select(gr => gr.Sum(g => g.MyValue)).ToList();  

Das geht aber nicht. Ich muss alle Felder, die im GroupBy vertreten sind, mitnehmen. Also habe ich es so versucht:

  
.GroupBy(gr => new { gr.Id, (DateTime)EntityFunctions.TruncateTime(gr.MyDate), gr.MyValue }).Select(gr => new { gr.Sum(g => g.DeviceDay), gr.Key.DeviceId, gr.Key.TimeStamp}).toList();  

Das klappt aber auch nicht, weil 1.: "(DateTime)EntityFunctions.TruncateTime" nicht in einem "GroupBy()" auftauschen darf und 2.: die Werte werden so nicht mehr groupiert.

Hast eventuell eine Idee?

Gruß