65 votes

Automapper - Mappe-t-il des listes d'objets?

J'ai la définition d'Automapper suivante:

 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());
 

Cela fonctionne bien lorsque je mappe un seul objet. Mais je n'arrive pas à passer dans les listes d'objets. Ai-je besoin d'une définition différente lors de la transmission d'une liste, ou n'est-ce pas possible?

157voto

ozczecho Points 3575

Dans votre définition AutoMapper:

     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));
 

Dans du code:

Pour célibataire:

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

Pour la liste:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X