0

このような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.List1[[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]

私は何か間違ったことをしていますか、それとも本当にサポートされていませんか?

4

0 に答える 0