有没有办法对包含的子集合和父集合进行排序?我正在使用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
P1
应该以...返回
P1
P2
但我现在能做的最好的就是......
P1
P2
答案 0 :(得分: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();
或者检索父母并将孩子排在记忆中。