Самым большим единственным различием, я думаю, является определение прототипа функции и синтаксис для описания типов аргументов функции.
Это работает следующим образом:
Mapper.CreateMap<Order, OrderDto>()
.ForMember(dest => dest.OrderLineDtos, opt => opt.MapFrom(src => src.OrderLines));
Mapper.CreateMap<OrderLine, OrderLineDto>()
.ForMember(dest => dest.ParentOrderDto, opt => opt.MapFrom(src => src.ParentOrder));
Mapper.AssertConfigurationIsValid();
Вложенные коллекции работают, пока имена совпадают. В ваших DTO у вас есть имя вашей коллекции как «OrderLineDtos», но в объекте Order это просто «OrderLines». Если вы удалите часть «Dtos» в именах свойств OrderLineDtos и ParentOrderDto, все они должны совпадать.