2016-06-06 3 views
2

내 방법에는 여러 문자열 목록과 복합 유형 객체 목록이 포함 된 결과가 반환되었습니다.AutoMapper 복잡한 유형의 객체 매핑 C#

enter image description here

Data.Entities.Upload.GroupMembershipValidationOutput

Business.Upload.GroupMembershipValidationOutput

화장실 :

  var AcctLst = gd.validateGroupMembershipUploadDetails(_input); 


      Mapper.CreateMap<Data.Entities.Upload.GroupMembershipValidationOutput, Business.Upload.GroupMembershipValidationOutput>(); 

      var result = Mapper.Map<Data.Entities.Upload.GroupMembershipValidationOutput, Business.Upload.GroupMembershipValidationOutput>(AcctLst); 


      return result; 

var에 AcctLst는 샘플 데이터를 포함

public class GroupMembershipValidationOutput 
{ 
    public List<string> _validMasterIds { get; set; } 
    public List<ChapterCodeValidationOutput> _validChapterCodes { get; set; } 
    public List<GroupCodeValidationOutput> _validGroupCodes { get; set; } 

    public List<string> _invalidMasterIds { get; set; } 
    public List<string> _invalidChapterCodes { get; set; } 
    public List<string> _invalidGroupCodes { get; set; } 
} 


public class ChapterCodeValidationOutput 
{ 
    public string chpt_cd { get; set; } 
    public string appl_src_cd { get; set; } 
} 



public class GroupCodeValidationOutput 
{ 
    public string grp_cd { get; set; } 
    public string grp_nm { get; set; } 
} 

같은 KS 나는 _validChapterCodes과 _validGroupCodes는 다음과 같은 예외를 발생 같아요

Missing type map configuration or unsupported mapping. 

Mapping types: 
ChapterCodeValidationOutput -> ChapterCodeValidationOutput 
ARC.Donor.Data.Entities.Upload.ChapterCodeValidationOutput -> ARC.Donor.Business.Upload.ChapterCodeValidationOutput 

Destination path: 
GroupMembershipValidationOutput._validChapterCodes._validChapterCodes._validChapterCodes0[0] 

Source value: 
ARC.Donor.Data.Entities.Upload.ChapterCodeValidationOutput 

답변

2

를 빌어 먹을 네. 비교적 간단합니다. 먼저 중첩 된 내부 형식을 먼저 매핑해야합니다.

var AcctLst = gd.validateGroupMembershipUploadDetails(_input); 
    Mapper.CreateMap<Data.Entities.Upload.ChapterCodeValidationOutput, Business.Upload.ChapterCodeValidationOutput>(); 
    Mapper.CreateMap<Data.Entities.Upload.GroupCodeValidationOutput, Business.Upload.GroupCodeValidationOutput>(); 
    Mapper.CreateMap<Data.Entities.Upload.GroupMembershipValidationOutput, Business.Upload.GroupMembershipValidationOutput>(); 

    var result = Mapper.Map<Data.Entities.Upload.GroupMembershipValidationOutput, Business.Upload.GroupMembershipValidationOutput>(AcctLst); 
    return result; 

다음은 완벽하게 작동합니다.