2010-11-25 4 views
38

나는 다음과 같은 Automapper의 (고화질)이 : 나는 하나의 객체를 매핑 할 때Automapper - 객체 목록을 매핑합니까?

Mapper.CreateMap<IB.BusinessComponents.Data.LocationMaster, IB.Entites.Master.Location>(); 
Mapper.CreateMap<IB.BusinessComponents.Data.LocationMaster, IB.Entites.Master.Location>() 
    .ForMember(destination => destination.Id, source => source.MapFrom(item => item.LocationMasterID)) 
    .ForMember(destination => destination.ChildLocationList, source => source.Ignore()); 

이 잘 작동합니다. 하지만 개체 목록을 전달할 수 없습니다. 목록을 전달할 때 다른 정의가 필요한가, 아니면 불가능할 수 있습니까?

코드에서
CreateMap<MyStuffDTO, MyStuffViewModel>() 
     .ForMember(dto => dto.MyDate, opt => opt.MapFrom(src => src.LastDate)) 
     .ForMember(dto => dto.MyTime, opt => opt.MapFrom(src => src.LastTime)) 
     .ForMember(dto => dto.Category, opt => opt.MapFrom(src => src.Category)); 

:

싱글의 경우 : 목록

var result = Mapper.Map<MyStuffDTO, MyStuffViewModel>(obj); 

: 당신의 AutoMapper 정의에서

+0

을 두 번 ? 한 번만 (아마도 두 번째 것으로) 정의해야합니다. – BeRecursive

+5

@BeRecursive - 아마도이 도구로 2 시간의 경험이 있기 때문일 수 있습니다. –

+0

매핑을 올바르게 정의하는 한, 목록 상자를 사용하여 작업해야합니다. 위 유형의 목록을 의미합니까? 명시 적 객체 목록에 대한 매핑을 정의 할 필요가 없습니다. 매핑하려는 객체 유형에 대한 매핑을 정의하고 '그냥 작동해야합니다'라고 대답하십시오. – BeRecursive

답변

111

같은 매핑이되는 이유는 무엇

var list = Mapper.Map<IList<MyStuffDTO>, IList<MyStuffViewModel>>(obj); 
+0

완벽하게 작업했습니다. - 감사합니다! –

+2

+10 경우, 매력처럼 일했습니다. – IamStalker

+0

[자동 매핑 (typeof (List ), typeof (List ))] MVC에서 이렇게 사용할 수 있습니까 ??? – dnxit