2016-09-07 5 views
0

Entity Framework 엔터티에서 뷰 모델 개체로 간단한 AutoMapper 매핑을 구성하려고합니다. 주로 작동하지만 뷰 모델에서는 개수를 보유 할 int 필드가 있습니다. 이 필드는 소스 엔터티에 없습니다.계산 된 값으로 AutoMapper 매핑을 만드시겠습니까?

cfg.CreateMap<Feed, FeedVM>() 
    .ForMember(dest => dest.Count, opt => opt.MapFrom(src => src.Orders.Count())); 

나는 다음과 같은 오류 메시지가 얻을 매핑의 유효성을 검사 할 때 :

이 피드에 다음과 같은 속성을 매핑 할 수없는

:

무시, 커스텀 매핑 식을 추가를 추가 사용자 정의 리졸버 또는 대상 유형 피드를 수정하십시오. 컨텍스트 : 내가 FeedVM에 피드에서 매핑하고 있지만 오류 메시지가 나는 먹이를 FeedVM에서 매핑하고 있음을 나타내는 것으로 보인다 올바르게 Automapper 구문을 이해한다면 타입 FeedVM에서 매핑

을 공급합니다.

값 42를 FeedVM의 Count 필드에 매핑하려면 어떻게해야합니까? 당신은 ResolveUsing를 사용해야합니다

+0

접수 된 답변의 의견에 OP가 다른 오류가 발생했기 때문에이 질문을 종료하도록 투표했습니다. – krillgar

답변

0

:

요한이 매핑이 올바른지 아래의 코멘트에 표시

cfg.CreateMap<Feed, FeedVM>() 
    .ForMember(dest => dest.Count, opt => opt.ResolveUsing(src => src.Orders.Count())); 
업데이트, 문제는 Feed 관련이 다른 기업에 대한 매핑에있다. 이 엔티티에서 그는 두 방향을 매핑합니다.

+0

예제를 단순하게 유지하기 위해 지나치게 단순화했을 수 있습니다. 오히려 "42"Linq 쿼리를 수행하여 관련 객체의 개수를 가져옵니다. 그에 따라 코드 예제를 수정했습니다. UseValue는 여전히 올바른 선택입니까? –

+0

아, 소스 코드가 없으므로'MapFrom' 대신'ResolveUsing'을 사용할 수 있습니까? :'.ForMember (dest => dest.Count, opt => opt.ResolveUsing (src => src.Orders.Count())); ' –

+0

동일한 검증 오류가 발생합니다. 더 명확하게 이해할 수 있도록 좀 더 많은 코드를 가져올 수 있는지 알아 보겠습니다. –

관련 문제