2013-06-21 36 views
0

有什麼辦法可以對包含的子集合和父集合進行排序?我正在使用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

回答

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(); 

或者檢索父母並對孩子進行排序。

相關問題