【发布时间】:2009-11-20 07:10:07
【问题描述】:
我想使用 Linq to ADO.NET 从 DataTable 中获取符合以下条件的所有行。
- 选择“parentId”等于 null 的行中“parentId”等于“id”的所有行。
- 按“名称”排序。
谁能告诉我如何完成这个(最好同时使用查询语法和方法语法),并可能指出我可以在哪里阅读有关此主题的更多信息?
【问题讨论】:
标签: c# linq ado.net relationship
我想使用 Linq to ADO.NET 从 DataTable 中获取符合以下条件的所有行。
谁能告诉我如何完成这个(最好同时使用查询语法和方法语法),并可能指出我可以在哪里阅读有关此主题的更多信息?
【问题讨论】:
标签: c# linq ado.net relationship
没有“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"));
【讨论】: