Можно ли указать AutoMapper во время создания карты для сопоставления с существующим экземпляром вложенного свойства?Automapper: сопоставление существующего вложенного сложного свойства
Давайте предположим, что у меня есть класс:
public class SomeClass
{
public int Id {get; set;}
public Complex Settings {get; set;}
}
public class Complex
{
public int Id { get; set;}
public string SomeText { get; set;}
}
Я хочу, чтобы создать карту из SomeClass в SomeClass и использовать его для отображения свойств на существующем экземпляре.
Mapper.CreateMap<SomeClass, SomeClass>()
.ForMember(src => src.Settings, opts => opts.MapFrom(src => Mapper.Map<Complex, Complex>(src));
Mapper.CreateMap<Complex, Complex>();
Mapper.Map<SomeClass, SomeClass>(a, b);
Где a и b являются экземплярами SomeClass. Проблема заключается в том, что это решение отображает свойства в существующий экземпляр, но создает новый экземпляр Complex вместо сопоставления a.Complex на существующий b.Complex.
Можно ли настроить AutoMapper для получения желаемого поведения?
(Это вызывает у меня много проблем с Entity Framework).
Возможный дубликат [Как вы отобразить DTO в существующий экземпляр объекта с вложенными объектами, используя AutoMapper] (http://stackoverflow.com/questions/ 3672447/как-делать-вы-карту-а-DTO-к-с существующей объектно-например-с-вложенными объектами, используя-о) – MisterIsaak