반응형
오토매퍼:새 개체를 만들지 않고 속성 값 업데이트
새 개체를 만들지 않고 오토매퍼를 사용하여 다른 개체의 속성 값을 업데이트하려면 어떻게 해야 합니까?
기존 대상을 사용하는 오버로드를 사용합니다.
Mapper.Map<Source, Destination>(source, destination);
예, 대상 개체를 반환하지만 이는 다른 모호한 시나리오에 대한 것입니다.그것은 같은 물건입니다.
이 작업을 수행하려면 소스 유형과 대상 유형이 동일하더라도 소스 유형에 대한 CreateMap이 필요합니다.그 말은 당신이 원한다면,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
공유한 것.고유 속성의 값은 동일하게 유지됩니다.
여기서 두 가지 주의할 점이 있습니다.첫째, 일반 맵 호출에 대해 매핑할 유형을 지정할 필요가 없습니다.이는 대상 개체 인스턴스를 전달하기 때문에 대상 개체의 유형에 따라 대상 유형을 결정할 수 있습니다.둘째, 우리는 이 통화의 결과를 변수에 저장하지 않습니다.이는 대상 개체가 제자리에 매핑되어 있고 새 인스턴스를 만들지 않기 때문입니다.
AutoMapper.Mapper.Map(sourceObject, destinationObject);
언급URL : https://stackoverflow.com/questions/2374689/automapper-update-property-values-without-creating-a-new-object
반응형
'sourcecode' 카테고리의 다른 글
안드로이드 기기에서 apk 파일을 가져오려면 어떻게 해야 합니까? (0) | 2023.06.02 |
---|---|
안드로이드에서 프로그램적으로 dp에서 마진을 설정하려면 어떻게 해야 합니까? (0) | 2023.06.02 |
Gem native 확장을 빌드하지 못했습니다(Compass 설치). (0) | 2023.06.02 |
div 내에서 텍스트 수직 정렬 (0) | 2023.06.02 |
iOS에서 두 날짜 사이의 시간(시간)을 계산하는 방법 (0) | 2023.06.02 |