Первое, на что вам следует обратить внимание, это то, что AutoMapper будет автоматически создавать коллекции, если он знает, как отобразить элементы этих коллекций.
Например, даны следующие классы:
public class Source {
public IList<SourceObj> SourceCollection {get; set;}
}
public class Destination {
public DestDto[] DestinationCollection {get; set;}
}
Коллекции будут правильно сопоставлены с этой конфигурацией:
CreateMap<SourceObj, DestDto>();
CreateMap<Source, Destination>()
.ForMember(dest => dest.DestinationCollection, opt => opt.MapFrom(src => src.SourceCollection));
Проверьте, работает ли это отображение:
var destDto = Mapper.Map<Destination>(sourceObj);
Assert.IsNotNull(destDto.DestinationCollection);
Если вы всегда хотите установить целевую коллекцию пустым списком, вы можете сделать это с помощью ResolveUsing
:
CreateMap<Source, Destination>()
.ForMember(dest => dest.DestinationCollection, opt => opt.ResolveUsing(src => new List<DestDto>()));