Я перечитал кучу разных тем на эту тему, но я не нашел того, что искал.
У меня есть запрос EF:
var query = this.ObjectContext.Questions
.Include("AnswerKey").Include("QuestionTypes")
.Where(o => o.SurveyQuestions.Any(o2 => o2.SurveyID == id));
Это работало нормально, пока я не понял, что не принимаю во внимание мой Активный Флаг для дочерней коллекции AnswerKey. Другими словами, этот запрос должен загружать все вопросы, для которых родительский опросный номер равен 3 (что он и делает), но загружать только answerKeys с активным флагом true.
Я пробовал это:
var query = this.ObjectContext.AnswerKey
.Include("Questions.QuestionTypes")
.Where(ak =>
ak.Active == true &&
ak.Questions.SurveyQuestions.Any(sq => sq.SurveyID == 3) &&
ak.Questions.Active == true)
.AsEnumerable()
.Select(ak => ak.Questions).AsQueryable();
Но он возвращает 1 вопрос для каждого ключа ответа. Поэтому, если у вопроса 4 ответа, он появляется 4 раза ...
Как я могу это сделать?