このようなEFのバックエンドプロパティがあります
public partial class PatientSurveyQuestion
{
public PatientSurveyQuestion()
{
this.PatientSurveyQuestionAnswers = new HashSet<PatientSurveyQuestionAnswer>();
this.PatientSurveyReplies = new HashSet<PatientSurveyReply>();
}
public int QuestionID { get; set; }
public string QuestionText { get; set; }
public Nullable<int> PointID { get; set; }
public Nullable<int> QuestionType { get; set; }
public virtual PatientSurveyPoint PatientSurveyPoint { get; set; }
public virtual ICollection<PatientSurveyQuestionAnswer> PatientSurveyQuestionAnswers { get; set; }
public virtual ICollection<PatientSurveyReply> PatientSurveyReplies { get; set; }
}
public partial class PatientSurveyQuestionAnswer
{
public int QuestionID { get; set; }
public int AnswerID { get; set; }
public Nullable<System.DateTime> DateCreayed { get; set; }
public virtual PatientSurveyAnswer PatientSurveyAnswer { get; set; }
public virtual PatientSurveyQuestion PatientSurveyQuestion { get; set; }
}
そして参加クラス
public class PatientQS
{
public PatientSurveyQuestion Question { get; set; }
public List<PatientSurveyAnswer> Answers { get; set; }
}
WFCの参照と仮想関数のない同じクラスもあります
[DataContract]
public class Question
{
[DataMember]
public int QuestionID { get; set; }
[DataMember]
public string QuestionText { get; set; }
[DataMember]
public Nullable<int> PointID { get; set; }
[DataMember]
public Nullable<int> QuestionType { get; set; }
}
[DataContract]
public class Answers
{
[DataMember]
public int AnswerID { get; set; }
[DataMember]
public string Answer { get; set; }
}
[DataContract]
public class QuestionsAnswers
{
[DataMember]
public Question Question { get; set; }
[DataMember]
public List<Answers> Answers{ get; set; }
}
次に、クエリを実行してデータを取得し、autopmaper を使用しました
var quesans = (from c in db.PatientSurveyQuestions
from v in db.PatientSurveyQuestionAnswers
where c.QuestionID == v.QuestionID && c.PointID == pointID
select new {c, ans=c.PatientSurveyQuestionAnswers.Select(n=>n.PatientSurveyAnswer)}).ToList().Select(c => new PatientQS { Question = c.c, Answers = c.ans.ToList() }).ToList();
Mapper.CreateMap<PatientSurveyAnswer, Answers>();
Mapper.CreateMap<PatientQS, QuestionsAnswers>().ForMember(c=>c.Answers, m=>m.MapFrom(
q=>Mapper.Map<List<PatientSurveyAnswer>, List<Answers>>(q.Answers)
));
QuestionsAnswers q2 = Mapper.Map<QuestionsAnswers>(quesans);
しかし、オートマッパーは私にエラーを与えます
タイプ マップ構成が欠落しているか、サポートされていないマッピングです。
マッピング タイプ: List
1 -> QuestionsAnswers System.Collections.Generic.List
1[[PatientService1.PROP.PatientQS, PatientService1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> PatientService1.PROP.QuestionsAnswers宛先パス: QuestionsAnswers
ソース値: System.Collections.Generic.List`1[PatientService1.PROP.PatientQS]
私は何か間違ったことをしていますか、それとも本当にサポートされていませんか?