//entities
class Order
int Id
datetime OrderDate
string SomeOtherOrderProp // I dont need to update but it has a value
List<Detail> Details
class Detail
int Id
decimal Quantity
string SomeOtherDetailProp // I dont need to update but it has a value
//DTO's
class OrderDTO
int Id
datetime OrderDate
List<DetailDTO> DetailsDTO
class DetailDTO
int Id
decimal Quantity
Мне нужно сопоставить OrderDTO с существующим заказом.
Для этого я определил пару сопоставлений:
CreateMap<OrderDTO, Order>()
.ForMember(dest => dest.Details, opt => opt.MapFrom(src => src.DetailsDTO))
CreateMap<DetailDTO, Detail>()
Затем я получу свой существующий заказ.
var order = GetOrderById(int id);
Наконец, когда я делаю
_mapper.Map(orderDto, order),
для передачи всех свойств orderDTO в мои существующие свойства порядка, это прекрасно.
OrderDto.Id отображается наOrder.Id.
OrderDTO.OrderDate to Order.OrderDate,
, и он сохраняет исходное значение свойства Order.SomeOtherOrderProp, чего я и ожидаю.
Однако свойство дочерних коллекций Details SomeOtherDetailProp не сохраняет свое значение.Например, Detail.SomeOtherDetailProp получит свое существующее значение равным нулю, поскольку у моего DetailDTO не было этого свойства.
Вопрос: Для объекта верхнего уровня он сохранил SomeOtherOrderProp, нов дочерней коллекции он перезаписал SomeOtherDetailProp.Что мне нужно сделать, чтобы он сохранил исходное значение SomeOtherDetailProp?