Frage

Ich möchte Linq to ADO.NET verwenden, um alle Zeilen abzurufen, die den Kriterien entsprechen, unten von einer Datentabelle.

  • alle Zeilen auswählen, wobei "parentId" gleich "id" einer Zeile, in der "parentId" null entspricht.
  • Sortieren nach "Namen".

Kann jemand mir sagen, wie dies zu tun (vorzugsweise sowohl Abfragesyntax und Methode Syntax verwendet wird), und zeigen Sie mir vielleicht, wo ich mehr zu diesem Thema lesen kann?

War es hilfreich?

Lösung

Es gibt nicht so etwas wie "Linq to ADO.NET" (vielleicht sind Sie mit ADO.NET Entity Framework verwirrend). In Ihrem Fall, Sie scheinen zu Datasets zu Linq Bezug zu

Sie könnte so etwas tun:

Abfrage-Syntax:

var parents = from row in table.AsEnumerable()
              where row.IsNull("parentId")
              select parents;

var children = from row in table.AsEnumerable()
               where parents.Any(p => p.Field<int>("id") = row.Field<int>("parentId"))
               orderby row.Field<string>("Name")
               select row;

Methode Syntax:

var parents = table.AsEnumerable()
              .Where(row => row.IsNull("parentId"));

var children = table.AsEnumerable()
               .Where(row => parents.Any(p => p.Field<int>("id") = row.Field<int>("parentId")))
               .OrderBy(row => row.Field<string>("Name"));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top