2016-10-17 7 views
0

に変換します。あなたが見ることができるようには、私は、次のDTOを持ってDTOリストプロパティ

public static QuestionGroupDTO ToDTO(this QuestionGroup src) 
{ 
    var dto = new QuestionGroupDTO 
    { 
     Id = src.Id, 
     Header = src.Header, 
     Description = src.Description, 
     RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions.ToList() 
    }; 
    return dto; 
} 

が、私はちょうどそれを割り当てて、それのリストを作成しようとしている:私のRelationQuestionGroup_QuestionDTO

ここ
public class RelationQuestionGroup_QuestionDTO 
{ 
    public int Order { get; set; } 
    [Required] 
    public Guid QuestionGroupId { get; set; } 
    [Required] 
    public Guid QuestionId { get; set; } 

    public virtual QuestionGroupDTO QuestionGroup { get; set; } 
    public virtual QuestionDTO Question { get; set; } 
} 

どのように見えるかをここで

は、私が変換する方法ですしかし、ここでキャスティングエラーが発生しました。私はこれを行う方法がわかりません。

Cannot implicity convert type Generic List to System.Collections.Generic.IEnumerble

誰も私を助けることができる:

は、私は次のエラーを取得しますか?

+1

_ "キャストエラー" _ - どちらですか?あなたの研究はそれについて何を示しましたか?あなたは、暗黙のうちに、あなたのRelationQuestionGroups_Questionエンティティは、あなたがQuestionGroupDTOをマップと同じようにそれをマッピングする必要があり、RelationQuestionGroups_QuestionDTOに変換することはできません。 – CodeCaster

+1

私はエラーがあなたが暗黙的にIEnumerableを QuietNaN

+0

@CodeCasterにIEnumerableをを唱えることができないと言うことを確信しています。しかし、どのように私はこれをマッピングしQuestionGroupDTOに、このマップされたオブジェクトを追加するには? – Bryan

答えて

0

あなたはRelationQuestionGroup_QuestionDTORelationQuestionGroups_Questionsをマッピングするために忘れてしまいました。

public static QuestionGroupDTO ToDTO(this QuestionGroup src) 
{ 
    var dto = new QuestionGroupDTO 
    { 
     Id = src.Id, 
     Header = src.Header, 
     Description = src.Description, 
     RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions.Select(rq => new RelationQuestionGroup_QuestionDTO 
      { 
       Order = rq.Order, 
       QuestionGroupId = rq.QuestionGroupId, 
       QuestionId = rq.QuestionId 
      }).ToList() 
     }; 
    return dto; 
} 
+0

RelationQuestionGroups内の仮想QuestionDTOはどうですか? – Bryan

+0

あなたは、また、それをマップする必要があります。質問=新しいQuestionDTO {ID = rq.Question.ID ...} – QuietNaN

1

あなたはマッピングで素晴らしいスタートを持っているが、RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions.ToList()で、あなたはList<Entity>List<Dto>に割り当てるしようとしています。あなたはそれをすることはできません。

プリミティブ以外のプロパティもマッピングする必要があります。

public RelationQuestionGroups_QuestionDTO ToDTO(RelationQuestionGroups_Question entity) 
{ 
    return new RelationQuestionGroups_QuestionDTO 
    { 
     Order = entity.Order, 
     // ... 
    }; 
} 

そしてあなたはこれを自動化するAutoMapperを見て行きましょう:そして、あなたはRelationQuestionGroups_QuestionDTORelationQuestionGroups_Questionをマッピングするためのメソッドを追加

public static QuestionGroupDTO ToDTO(this QuestionGroup src) 
{ 
    var dto = new QuestionGroupDTO 
    { 
     // ... 
     RelationQuestionGroups_Questions = src.RelationQuestionGroups_Questions 
               .Select(ToDTO) 
               .ToList() 
    }; 
    return dto; 
} 

:あなたはこのようにそれを行うことができます。

+0

そして、私はあまりにも(RelationQuestionGroups_QuestionDTO内側)QuestionDTOでこれを行う必要がありますか? – Bryan

+0

ははい、あなたは同様に任意の非プリミティブ(というか、ターゲット型への暗黙の変換が存在しない任意の型)をマッピングする@Bryan必要があります。 – CodeCaster

+0

Okey。しかし、マッピングされたQuestionDTOをRelationQuestionGroups_Questionsにどのように追加すればよいですか? RelationQuestionGroupsには.Select(ToDTO)を使用します。しかしQuestionDTOはどうですか?それをToDTOの中から呼び出すべきですか? – Bryan

関連する問題