AutoMapper: объединение значений элементов в коллекции из одного экземпляра в другой

Я пытаюсь выяснить, как объединить два экземпляра сложных объектов с помощью AutoMapper. У родительского объекта есть свойство, которое является коллекцией дочерних объектов:

public class Parent
{
    public List<Child> Children { get; set; }
}

public class Child
{
    public string A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
}

У меня есть два случаяParent:

var parentOne = new Parent()
{
    Children = new List<Child>() { new Child() { A = "A", B = "B", C = "C" } }
};

var parentTwo = new Parent()
{
    Children = new List<Child>() { new Child() { C = "Updated value" } }
};

Я хотел бы иметь возможность объединить значения изparentOne вparentTwoбез перезаписи значенияC вparentTwo, Карты, которые я создал, следующие:

Mapper.CreateMap<Parent, Parent>()
    .ForMember(parent => parent.Children, opt => opt.UseDestinationValue());

Mapper.CreateMap<Child, Child>()
    .ForMember(child => child.C, opt => opt.Ignore());

Mapper.Map(parentOne, parentTwo);

Насколько я понимаю, AutoMapper будет создавать новые экземпляры сложных свойств, если вы не используетеUseDestinationValue() вариант. Однако после выполнения кода выше,parentTwo.C равняется"C" вместо"Updated value".

Мне кажется, что он хранит примерList<Child>, но это создает новые экземплярыChild в список. К сожалению, я изо всех сил пытаюсь придумать карту, которая будет держать каждый экземплярChild также.

Любая помощь приветствуется!

Ответы на вопрос(3)

Ваш ответ на вопрос