I am trying to Map a nested List with my DTO object, however its not working. here is what I tried. everything returns null. Error I get is: An exception of type 'AutoMapper.AutoMapperMappingException' occurred in AutoMapper.dll but was not handled in user code
public class ordersview_Dto
{
public int orderID { get; set; }
public string orderNumber { get; set; }
public float? orderTotal { get; set; }
public string lastName { get; set; }
public string firstName { get; set; }
public List<ProductsDTO> ProductsDTO { get; set; }
}
public class ProductsDTO
{
public int id { get; set; }
public int OrderID { get; set; }
}
This is how I am mapping:
Mapper.CreateMap<OrderHeader, ordersview_Dto>()
.ForMember(h => h.ProductsDTO, k => k.MapFrom((m => m.orderLines)));
IEnumerable<OrderHeader> ordersList = new OrdersRepository().getOrders();
IEnumerable<ordersview_Dto> ordersFlow = Mapper.Map<IEnumerable<OrderHeader>, IEnumerable<ordersview_Dto>>(ordersList);
I am sure problem relies in this line: .ForMember(h => h.ProductsDTO, k => k.MapFrom((m => m.orderLines))); ProductsDTO and OrderLines both are Lists.
here is my OrderHeader Class:
public class OrderHeader
{
public OrderHeader()
{
// Set any defaults here;
orderLines = new List<OrderLines>();
}
public float? SubTotal { get; set; }
public float? Shipping { get; set; }
public string ShipMethod { get; set; }
public float? Tax { get; set; }
public int SalesID { get; set; }
public string IpAddress { get; set; }
// Mapping
public Customer customer;
public OrderCC ordercc;
public OrderAddress orderAddress;
public List<OrderLines> orderLines;
}
orderLines(we are missing class for OrderHeader), and have you made sureorderLinesisn't null or empty?