Можно ли настроить/использовать AutoMapper таким образом, чтобы когда i создал объект из сопоставления, я разрешаю все свойства и дочерние коллекции, однако, когда это приходит к выполнению обновления существующему объекту, отображение будет игнорировать свойства дочерних элементов, поскольку они будут пустыми, но я не хочу, чтобы они были удалены.AutoMapper: игнорировать свойство при обновлении существующего, но разрешить при создании
Это потому, что я работаю со службой WCF, которая отправляет изменения дельты на объекты и большая часть моей модели работает в иерархии дерева:
Parent
List<Child> Children
ParentDto
List<ChildDto> Children
config.CreateMap<ParentDto, Parent>();
config.CreateMap<ChildDto, ChildDto>();
Это хорошо работает и сбор ребенка заполняется первый раз вокруг , Тем не менее, есть сценарии, в которых я буду отправлять ParentDto через только изменения свойств родительского POCO (например, изменение даты и времени), но список дочерних элементов будет пустым, поскольку ни один из них не изменился. Обычно я хотел бы сделать:
_Mapper.Map<ParentDto,Parent>(dto, local)
, но очевидно, что изменит все дерево и заполнить локальный объект с пустым списком детей. Массовое упрощение, но что-то вроде
_Mapper.Map<ParentDto, Parent>(dto, local).Ignore(p => p.Children)
возможно?
Я также должен добавить, что я использую каркас SimpleInjector DI. Так что, возможно, есть способ зарегистрировать 2 конфигурации, один с игнорированием и один без?
thanks; как бы я использовал это в описанном выше сценарии? Мне нужно полное дерево при создании исходного объекта, но игнорируйте дочерние коллекции при обновлении существующего. – percentum