シンプルな親子シナリオを作成し、Automapperを使ってマッピングできないようにしました。次のシナリオでは、私はOrderItemsのリストがdtoOrderItemsのリストにマップされることを期待していますが、自動的には発生しません。 forループなどで手動で記述する必要はありますか?Automapperを使用して親子コレクションモデルをマップする方法は?
public class Order
{
public int OrderNumber {get; set;}
public List<OrderItem> OrderItems { get; set; }
public Order()
{
OrderItems = new List<OrderItem>();
OrderItems.Add(new OrderItem() {Quantity= 10});
}
}
public class OrderItem
{
public int Quantity {get; set;}
}
public class DTOOrder
{
public int DTOOrderNumber { get; set; }
public List<DTOOrderItem> DTOOrderItems { get; set; }
public DTOOrder()
{
DTOOrderItems = new List<DTOOrderItem>();
}
}
public class DTOOrderItem
{
public int DTOQuantity { get; set; }
}
public DTOOrder TestConversion()
{
AutoMapper.Mapper.CreateMap<OrderItem, DTOOrderItem>();
AutoMapper.Mapper.CreateMap<Order, DTOOrder>();
Order order = new Order();
var dtoOrder = AutoMapper.Mapper.Map<Order, DTOOrder>(order);
return dtoOrder;
}
ありがとうございました。私は次のAutoMapper.Mapper.CreateMap()を実行する必要がありました。ForMember(dto => dto.DTOOrderItems、opt => opt.MapFrom(src => src.OrderItems)); –
user1767363