Я использую ASP.NET MVC 3 с Entity Framework CodeFirst
У меня есть два класса следующим образом:
Вопрос:
public class Question
{
public int ID { get; set; }
public Target Target { get; set; }
public string QuestionText { get; set; }
public Category Category { get; set; }
public QuestionType QuestionType { get; set; }
public virtual ICollection<Answer> Answers { get; set; }
public Unit Unit { get; set; }
}
Ответ:
public class Answer
{
public int ID { get; set; }
public virtual Question Question { get; set; }
public string AnswerText { get; set; }
public int Value { get; set; }
}
У меня также есть эта ViewModel:
public class QuestionViewModel
{
public int ID { get; set; }
public string Question { get; set; }
public string QuestionType { get; set; }
public string Target { get; set; }
public string Category { get; set; }
public string Unit { get; set; }
public List<Answer> Answers { get; set; }
}
Я хочу запросить таблицу вопросов и включить ответы, если они есть.
Я пыталсяэтот стиль
var question = (from q in hontgen.Questions
where q.ID == id
join qt in db.QuestionTypes on q.QuestionType equals qt
join t in db.Targets on q.Target equals t
join c in db.Categories on q.Category equals c
join u in db.Units on q.Unit equals u
join a in db.Answers on q.Answers equals a
select new QuestionViewModel() {
ID = q.ID,
Question = q.QuestionText,
QuestionType = qt.Type,
Category = c.CategoryName,
Unit = u.UnitName,
Target = t.TargetName,
Answers = a
}).Single();
Но это, конечно, не катит, потому что это не список ответов, а только один ответ.
Как переписать запрос, чтобы получить все ответы в коллекции или все ответы с правильным вопросом в «Вопросе», в то же время принимая пустой список ответов?