【问题标题】:Linq to ADO.NET parent/child query helpLinq to ADO.NET 父/子查询帮助
【发布时间】:2009-11-20 07:10:07
【问题描述】:

我想使用 Linq to ADO.NET 从 DataTable 中获取符合以下条件的所有行。

  • 选择“parentId”等于 null 的行中“parentId”等于“id”的所有行。
  • 按“名称”排序。

谁能告诉我如何完成这个(最好同时使用查询语法和方法语法),并可能指出我可以在哪里阅读有关此主题的更多信息?

【问题讨论】:

    标签: c# linq ado.net relationship


    【解决方案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"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多