LINQ, Lambda -, Group by-Liste mit

Ich habe einige Schwierigkeiten mit der Suche nach der richtigen syntax zum erreichen der folgenden Ziele:

Ist es möglich, mit LINQ (Lambda-Ausdruck) zu .GroupBy-Daten und anstelle der üblichen .Summe() oder .Count() ich möchte, dass die resultierenden Daten werden einer Liste von Int.

Definierte ich meine eigene Klasse mit dem Namen: Filter_IDs. Der Konstruktor benötigt zwei Parameter:

public int? type; //Represents the object_type column from my database
public List<int?> objects; //Represents the object_id column from my database

Ich soll zum laden von Daten aus meiner Datenbank in das Objekt ein. Die folgende LINQ-Abfrage soll das Ergebnis in einer Liste von Filter_IDs:

Die folgende LINQ-Abfrage soll das Ergebnis in einer Liste von Filter_IDs:

List<Filter_IDs> filterids = ef.filterLine
        .GroupBy(fl => fl.objectType)
    .Select(fl => new Filter_IDs { type = fl.Key, objects = fl.Select(x => x.object_id).ToList() })
    .ToList();

Mithilfe dieser Abfrage gibt kein Gebäude-Fehler, sondern gibt eine "NotSupportedException' auf Laufzeit.

Der Datenbank sieht wie folgt aus, um Ihnen ein besseres Verständnis der Daten:

http://d.pr/i/mnhq+ (droplr Bild)

Vielen Dank im Voraus,
Gerben

  • was ist ef.filterLine ?
  • ef ist der Kontext und die filterLine ist der Datenbank-Tabelle vor, die object_id-und Objekttyp.
  • Wenn Sie ef.filterLine.ToList() funktioniert das?
  • Das würde ja klappen, aber filterLine hat mehr Spalten als nur die objectid und den objectType. Ich will nicht die anderen Werte aus anderen Spalten.
InformationsquelleAutor G Versluis | 2012-12-06
Schreibe einen Kommentar