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
공유 한 모든 속성 값으로 업데이트됩니다 . 고유 한 속성 값은 동일하게 유지됩니다.