作成した次の LINQ コードがあります。
QuestionDetail questions = _questionsRepository
.GetAll()
.Include(q => q.Answers)
.Select(m => new QuestionDetail
{
QuestionId = m.QuestionId,
Text = m.Text,
Answers // << I am not sure how to populate this
// << I need to have a new collection
// << created from a subset of the m.Answers
})
.FirstOrDefault();
ICollection<AnswerDetail> Answers
私の問題は、QuestionDetail の一部であるコレクションを作成する方法がわからないことです。私が必要としているのは、m.Answers から何らかの方法で選択し、これを使用して AnswerDetail コレクションにデータを入力することです。Answers はコレクションであるため、 new AnswerDetail を使用できないことはわかっています。
誰でも助けて、どうすればこれができるか教えてもらえますか。
以下に、このためのクラスのいくつかをリストしました。簡単にするために、質問と回答のクラスからいくつかのフィールドを削除しました。
public class QuestionDetail
{
public int QuestionId { get; set; }
public string Text { get; set; }
public virtual ICollection<AnswerDetail> Answers { get; set; }
}
public class AnswerDetail
{
public int AnswerId { get; set; }
public string Text { get; set; }
}
public class Answer
{
public int AnswerId { get; set; }
public int QuestionId { get; set; }
public Nullable<bool> Correct { get; set; }
public Nullable<bool> Response { get; set; }
public string Text { get; set; }
public virtual Question Question { get; set; }
}
public class Question
{
public Question()
{
this.Answers = new List<Answer>();
}
public int QuestionId { get; set; }
public string Text { get; set; }
public string Image { get; set; }
public virtual ICollection<Answer> Answers { get; set; }
}