dedlfix: Dynamic-LINQ und Sum

Beitrag lesen

Tach!

Also, ich habe ein Dynamic-LINQ-Statement wie folgt:

db.MyTabel.Where("Id == @0 And (MyTimeStamp >= @1 And MyTimeStamp <= @2)",
                  id, datum1, datum2).Select(
                  "new (Id, MyTimeStamp, Income").OrderBy("MyTimeStamp"));

  
Erstmal was allgemeines. Die Sprache ist C#, nicht SQL. Am ehesten käme da noch C als Code-Auszeichnung in Frage. C# kennt die Syntaxauszeichnung des Forums nicht.  
  
Warum schreibst du denn das alles als Strings? Modernes C# und LINQ kann Expressions verwenden. Weil Expressions Code sind, hat man gleich beim Tippen die Rückmeldung, ob Syntaxfehler drin sind oder nicht, nebst so netter Sachen wie Code-Vervollständigung. Allerdings brauchst du dann auch ein (generiertes) Model (erzeugt aus der Datenbank-Struktur oder über Code-First).  
  

> Meine Frage ist, wie kann ich nun in dem oberen Statement eine Summe über "Income" bilden? Ich meine etwas wie dies:  
  

> ~~~c
  

> db.MyTabel.Where("Id == @0 And (MyTimeStamp >= @1 And MyTimeStamp <= @2)",  
>                   id, Datum1, Datum2).Select(  
>                   "new (Id, MyTimeStamp, Income, Sum(Income)").OrderBy("MyTimeStamp"));  
> 

Das kann so nicht gehen. Jeder Datensatz wird einzeln verarbeitet. Der hat zwar anscheinend ein Feld namens Income, aber das ist ein Wert. Die Summe davon ist immer noch der Wert selbst. Vielleicht willst du ja die Werte einer Gruppe von Datensätzen haben, aber dazu musst du erstmal gruppieren, nach welchem Kriterium auch immer.

dedlfix.