web-dev-qa-db-ja.com

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

これは、単一のオブジェクトをマップするときに正常に機能します。しかし、オブジェクトのリストを渡すことができないようです。リストを渡すときに別の定義が必要ですか、それとも不可能ですか?

50
Randy Minder

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

コード内:

シングルの場合:

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

リストの場合:

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