2017-09-04 9 views
1

에 중첩 된 자식 개체 속성을 매핑하려면 :가 어떻게 현재의지도를 Automapper

CreateMap<Article, ArticleModel>() 
       .ForMember(dest => dest.BaseContentItem, opts => opts.MapFrom(src => src.BaseContentItem)) 
       .ForMember(dest => dest.BaseContentItem.TopicTag, opts => opts.MapFrom(src => src.BaseContentItem.TopicTag)) 
       .ForMember(dest => dest.MainImage, opts => opts.MapFrom(src => src.MainImage)) 
       .ReverseMap(); 

내가 오류는 다음과 같습니다

System.ArgumentException : '표현'이명 령 => dest.BaseContentItem .TopicTag '는 최상위 수준 멤버로, 은 하위 개체 속성을 확인하지 않아야합니다. 자식 유형의 맞춤 해결 프로그램이나 AfterMap 옵션을 대신 사용하십시오. '

어떻게 매핑 할 수 있습니까?

+1

을 사용하십시오. ForMember 대신 ForPath가 필요합니다. –

답변

0

누구든지 문제가 발생하면 이상합니다.

별도의 매핑 프로필에서 모든 하위 항목에 대한지도를 올바르게 만들었습니다. 문제는 그 자식 모델 중 하나가 TopicTag 유형을 가졌기 때문에 스택 오버플로를 만들었습니다. 그 불필요한 필드를 제거하고 올바르게 매핑합니다.

1

이렇게하면됩니다. ForMember 대신 ForMember

`CreateMap<Article, ArticleModel>() 
       .ForMember(dest => dest.BaseContentItem, opts => opts.MapFrom(src => src.BaseContentItem)) 
       .ForPath(dest => dest.BaseContentItem.TopicTag, opts => opts.MapFrom(src => src.BaseContentItem.TopicTag)) 
       .ForMember(dest => dest.MainImage, opts => opts.MapFrom(src => src.MainImage)) 
       .ReverseMap();` 
+0

이 질문에 대한 답을 제공하지 않습니다. 충분한 [평판] (https://stackoverflow.com/help/whats-reputation)이 있으면 [모든 게시물에 주석 달기] (https://stackoverflow.com/help/privileges/comment) 할 수 있습니다. 대신, [질문자의 설명이 필요없는 답변을 제공하십시오] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do- 대신). - [리뷰에서] (리뷰/저품절 포스트/18013879) – Mamun