У меня есть эта строка кода в моем global.asax
Mapper.CreateMap<Order, OrderDTO>();
Это мои занятия:
public class Customer
{
public string Name {get; set;}
}
public class Order
{
public int OrderId { get; set; }
public Customer Customer { get; set; }
}
public class OrderDTO
{
public int OrderId { get; set; }
public string Name { get; set; }
}
А это мой код:
Customer cust = new Customer { Name = "Jaggu" };
Order order = new Order { Customer = cust, OrderId = 123 };
OrderDTO dto = Mapper.Map<Order,OrderDTO>(order);
мой dto содержит OrderId, но имя равно null. По документации это должно работать:
https://github.com/AutoMapper/AutoMapper/wiki/Flattening
Если я изменю отображение своего global.asax на это:
Mapper.CreateMap<Order, OrderDTO>().ForMember(dest => dest.Name,
mapping => mapping.MapFrom(order => order.Customer.Name));
это работает! Это делает меня любопытным. Док не прав? или я делаю это неправильно?