Ссылка на ADO.NET справка по родительскому / дочернему запросу
-
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"));
Не связан с StackOverflow