Ссылка на ADO.NET справка по родительскому / дочернему запросу

StackOverflow https://stackoverflow.com/questions/1768845

  •  21-09-2019
  •  | 
  •  

Вопрос

Я хочу использовать Linq для ADO.NET для извлечения всех строк, которые соответствуют приведенным ниже критериям, из DataTable.

  • Выберите все строки, где "ParentID" равно "id" строки, где "ParentID" равно null.
  • Заказывайте по "Имени".

Может кто-нибудь сказать мне, как этого добиться (предпочтительно используя как синтаксис запроса, так и синтаксис метода), и, возможно, указать мне, где я могу прочитать больше об этой теме?

Это было полезно?

Решение

Не существует такого понятия, как "Linq to ADO.NET" (возможно, вы путаете с ADO.NET Entity Framework).В вашем случае вы, похоже, имеете в виду Linq для 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"));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top