Это связано с тем, что проекция является частью запроса.
select new
{
Question = q,
Choices = q.Choices.OrderBy(c => c.Sequence)
});
Есть несколько способов подойти к решению, самый простой из которых будет
var quesitonsList = (from q in journeyEastContext.Questions.Include("Choices")
orderby q.QuestionId).ToList();
var listOfQuestions = from q in questionsList
Select new
{
Question = q,
Choices = q.Choices.OrderBy(c => c.Sequence)
});
Это скажет EF выполнить первый запрос (со стремительно загруженным свойством Choices).), а затем позволит вам выполнить итерацию без дополнительных запросов.
.Include и .Select не смешиваются из-за типа запроса, генерируемого в T-SQL.В основном проекции используют внутренние операторы выбора, а загруженные свойства используют денормализацию и объединения, чтобы сгладить набор записей.