这是我第一次尝试利用AutoMapper MapperConfiguration。在下面的代码中,我的源是OrderItem对象,而我的目的地是AvailableRoll对象,但是,当我运行代码时,只会填充最后映射的项目。
private List<AvailableRoll> MapOrderItemsToAvailableRolls(List<Data.Winder.OrderItem> orderItems) {
var rtrn = new List<AvailableRoll>();
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<Data.Winder.OrderItem, AvailableRoll>().ForMember(ar => ar.Diameter, oi => oi.MapFrom(x => x.RollDiameter));
cfg.CreateMap<Data.Winder.OrderItem, AvailableRoll>().ForMember(ar => ar.Item, oi => oi.MapFrom(x => x.ItemNumber));
cfg.CreateMap<Data.Winder.OrderItem, AvailableRoll>().ForMember(ar => ar.RollsPlanned, oi => oi.MapFrom(x => x.EstimatedNumberRolls));
});
var mapper = config.CreateMapper();
mapper.Map(orderItems, rtrn);
return rtrn;
运行代码时,仅填充RollsPlanned。如果我将“直径”或“项目”移动到“已计划的卷”下方,则将填充该成员。我究竟做错了什么? TIA!
更新: 需求已更改-不再需要映射这些类,因此目前我将不再继续进行。