1

有没有办法对包含的子集合和父集合进行排序?我正在使用 LINQ to Entities 和 EF 5.0。

这是我的查询,它不起作用。如果我在 Include 中取出 OrderBy,它工作得很好,只是子列表没有排序。

return (from parent in m_Context.Parents
            .Include(p => p.Children.OrderBy(c => c.ChildInformation.Name).Select(c => c.ChildInformation)
        orderby parent.Name
        select parent)
        .ToList();

例如,集合:

  • P2

    • C3
    • C1
    • C2
  • P1

    • C2
    • C1

应该返回...

  • P1

    • C1
    • C2
  • P2

    • C1
    • C2
    • C3

但我现在能做的最好的就是……

  • P1

    • C2
    • C1
  • P2

    • C3
    • C1
    • C2
4

1 回答 1

0

您不能对内部集合进行排序(因为您不能将排序结果分配给parent.Children属性),但您可以返回具有排序的父对象和排序的子对象的匿名对象,而不包括父实体中的子对象:

return (from parent in m_Context.Parents
        orderby parent.Name
        select new {
           Parent = parent,
           Children = parent.Children.OrderBy(c => c.ChildInformation.Name)
        }).ToList();

或者检索父母并在记忆中对孩子进行分类。

于 2013-06-21T16:51:16.720 回答