Risposte:
Utilizzare il sovraccarico che prende la destinazione esistente:
Mapper.Map<Source, Destination>(source, destination);
Sì, restituisce l'oggetto di destinazione, ma è solo per alcuni altri scenari oscuri. È lo stesso oggetto.
Per fare questo devi creare CreateMap per i tipi di origine e destinazione anche se sono dello stesso tipo. Ciò significa che se vuoi,
Mapper.Map<User, User>(user1, user2);
devi creare una mappa come questa
Mapper.Create<User, User>()
Se si desidera utilizzare un metodo di istanza di IMapper, anziché il metodo statico utilizzato nella risposta accettata, è possibile effettuare le seguenti operazioni (testato in AutoMapper 6.2.2
)
IMapper _mapper;
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Source, Destination>();
});
_mapper = config.CreateMapper();
Source src = new Source
{
//initialize properties
}
Destination dest = new dest
{
//initialize properties
}
_mapper.Map(src, dest);
dest
verrà ora aggiornato con tutti i valori delle proprietà da src
quello condiviso. I valori delle sue proprietà uniche rimarranno gli stessi.