使用orderby linq对Parent-Child进行排序

时间:2017-10-26 10:00:49

标签: c# .net entity-framework linq

输入:

enter image description here

我想按作业名称(父母)和对象列表中的子序列开发linq查询顺序

我试过下面的查询(不工作)

qry = qry.OrderBy(j => j.Id).ThenBy(j => j.jobName).ThenBy(j => j.documentGroupId);

预期产出:

enter image description here

任何人帮助!!!

2 个答案:

答案 0 :(得分:0)

据我所知,预期结果是先按ID列排序,但是从1004到1001,这意味着您需要通过降序排序。请改用Enumerbale.OrderByDescendingEnumerable.ThenByDescending

你应该试试:

var result = qry.OrderByDescending(j => j.Id).
          ThenBy(j => j.SubId).
          ThenBy(j => j.JobName).
          ThenByDescending(j => j.DocumentGroupId).ToList();

此外,如果有更多关于如何分类的详细信息,那将会很棒。不只是预期的结果屏幕。

答案 1 :(得分:0)

喜欢这个吗?

qry =
  qry
    .GroupBy(j => j.Id)
    .OrderBy(group => group
      .Single(j => j.SubId == 0)
      .Name)
    .SelectMany(group => group
      .OrderBy(j => j.SubId))
    .ToList();