I found out to resolve one to many, many to one and one to one relationships however I am still unclear about how to resolve many to many relationships while mapping.
public class OrderDTO
{
// Standard properties
public virtual int OrderId { get; set; }
public virtual DateTime OrderDate { get; set; }
public virtual string Address { get; set; }
// Child collection properties
public virtual IList<OrderLineDTO> OrderLines { get; set; }
}
public class OrderLineDTO
{
// Standard properties
public virtual int OrderLineId { get; set; }
public virtual string Description { get; set; }
public virtual decimal Amount { get; set; }
public virtual OrderDTO Order { get; set; }
}
and the solution
Mapper.Map<OrderLine, OrderLineDTO>()
.ForMember(m => m.Order, opt => opt.Ignore());
Mapper.Map<Order, OrderDTO>()
.AfterMap((src, dest) => {
foreach(var i in dest.OrderLines)
i.Order = dest;
});
What if it would be something like this;
OrderDTO.cs
public virtual IList<OrderLineDTO> OrderLineDTOs { get; set; }
OrderLineDTO.cs
public virtual IList<OrderDTO> OrderDTOs { get; set; }
any idea would be appreciated.