0

Linq to ADO.NETを使用して、以下の条件に一致するすべての行をDataTableからフェッチしたいと思います。

  • 「parentId」が「id」に等しいすべての行を選択し、「parentId」がnullに等しい行を選択します。
  • 「名前」で注文します。

誰かがこれを達成する方法を教えてもらえますか(できればクエリ構文とメソッド構文の両方を使用して)、おそらくこのトピックについてもっと読むことができる場所を教えてもらえますか?

4

1 に答える 1

1

「Linq to ADO.NET」というものはありません (おそらく、ADO.NET Entity Framework と混同している可能性があります)。あなたの場合、Linq to DataSets を参照しているようです

あなたはそのようなことをすることができます:

クエリ構文:

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;

メソッドの構文:

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"));
于 2009-11-28T23:44:52.943 に答える