有关如何编写LINQ以实现以下内容的任何帮助/提示都将不胜感激。
数据模型:
public class Question
{
public int ID { set; get; }
public string QuestionText { set; get; }
}
public class Answer
{
public int ID { set; get; }
public int QuestionID { set; get; }
public string AnswerText { set; get; }
}
查看型号:
public class QuestionViewModel
{
public int ID { set; get; }
public string QuestionText { set; get; }
public IEnumerable<AnswerViewModel> Answers { set; get; }
}
public class AnswerViewModel
{
public int ID { set; get; }
public string AnswerText { set; get; }
}
public class EvaluationViewModel
{
public IEnumerable<QuestionViewModel> Questions { set; get; }
}
如何编写LINQ查询以加入模型问题和答案,并将行写入EvaluationViewModel结构?
可以在一个LINQ查询中完成吗?或者我们是否必须编写LINQ来加入模型问答,然后单独编写一些内容以将数据导入EvaluationViewModel结构?
感谢您对此提供任何帮助。
实际上,我从http://www.techiesweb.net/radio-button-list-in-asp-net-mvc/
获得了这个ViewModel结构答案 0 :(得分:2)
假设您有两个集合:问题和答案:
IEnumerable<Question> Questions;
IEnumerable<Answer> Answers;
你可以这样做:
var vm = new EvaluationViewModel();
vm.Questions =
Questions.Select(q => new QuestionViewModel()
{
ID = q.ID,
QuestionText = q.QuestionText,
Answers = Answers.Where(a => a.QuestionID == q.ID).Select(a => new AnswerViewModel()
{
ID = a.ID,
AnswerText = a.AnswerText
})
});