[C#] 오토 매퍼 : 새 객체를 만들지 않고 속성 값 업데이트

automapper를 사용하여 새 객체를 만들지 않고 다른 객체의 속성 값을 업데이트하려면 어떻게해야합니까?



답변

기존 대상을 사용하는 과부하를 사용하십시오.

Mapper.Map<Source, Destination>(source, destination);

예, 대상 객체를 반환하지만 다른 모호한 시나리오를위한 것입니다. 같은 개체입니다.


답변

이 작업을 수행하려면 소스 및 대상 유형이 동일한 유형 인 경우에도 맵을 작성해야합니다. 즉, 원하는 경우 다음
Mapper.Map<User, User>(user1, user2);
과 같은지도를 만들어야합니다.
Mapper.Create<User, User>()


답변

수락 된 답변에 사용 된 정적 메소드 대신 IMapper의 인스턴스 메소드를 사용하려는 경우 다음을 수행 할 수 있습니다 (에서 테스트 됨 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이제 src공유 한 모든 속성 값으로 업데이트됩니다 . 고유 한 속성 값은 동일하게 유지됩니다.

관련 소스 코드는 다음과 같습니다


답변