Решение зависит от того, что именно вы пытаетесь сделать.
Первый запрос создает впечатление, что вы хотите «сгладить» результаты в объектах, как это (псевдокод, надеюсь, понятно, чтоЯ имею в виду):
{ Parent1, Child1 }
{ Parent1, Child2 }
{ Parent1, Child3 }
{ Parent2, Child1 }
В этом случае каждый результирующий «ряд» будет объектом, имеющим свойства Parent
и Child
, и вы можете отсортировать по имени родителя, а затем по имени ребенка.
Второй запрос просто возвращает объекты Parent
и (вы не показываете это, но я предполагаю, что EF был проинструктирован об этом), у каждого есть коллекция Children
.В этом случае вы можете сортировать только по родительскому имени;если вы хотите отсортировать дочерние элементы каждого Parent
, отсортируйте коллекцию Children
по этому объекту отдельно.
Что из двух вы хотите сделать?
Обновление
ОК, похоже, вам нужен второй.Я не верю, что это можно сделать напрямую.Вы можете просто сделать это при перечислении результатов - поскольку Parent
s уже отсортированы, просто отсортируйте дочерние элементы каждого:
var sortedChildren = parent.Children.OrderBy(c => c.Name);