Вы не можете (насколько мне известно)
questions = context.Questions.Include("Answers")
.OrderBy(answer => answer.Id)
.First(question => question.Id == id);
Параметр, который вы передаете здесь OrderBy (answer => answer.Id
), вводит в заблуждение: вы упорядочиваете вопросы, а не ответы.Чтобы уточнить, вы могли бы написать это так:
ObjectSet<Question> questions = context.Questions;
IQueryable<Question> questionsWithAnswers = questions.Include("Answers");
IQueryable<Question> orderedQuestions = questionsWithAnswers
.OrderBy(question => question.Id);
Question question = orderedQuestions.First(question => question.Id == id);
Чтобы сделать то, что вы хотите, я считаю, что вы можете заказать только после того, как вы запросите их из базы данных:
var question = context.Questions.Include("Answers").First(q => q.Id == id);
var answers = question.Answers.OrderBy(answer => answer.Id);
Другой возможностью может быть использование промежуточного анонимного типа:
var question = from q in context.Questions
where q.Id == id
select new {
Question = q,
Answers = q.Answers.OrderBy(answer => answer.Id)
}