반응형
Automapper : ReverseMap () 및 ForMember ()를 사용한 양방향 매핑
엔터티를 뷰 모델에 매핑하고 다시 매핑하려는 경우가 있습니다. 속성이 정확히 동일한 이름을 공유하지 않기 때문에 ForMember ()로 매핑을 명시 적으로 지정해야합니다. 다음은 내 수업이 어떻게 보이는지에 대한 간단한 예입니다.
public class PartTwo {
public int Integer { get; set; }
}
public class PartTwoViewModel {
public int PartInteger { get; set; }
}
그리고 나는 이것을 이런 식으로 사용하고 싶습니다.
Mapper.CreateMap<PartTwo, PartTwoViewModel>()
.ForMember(dst => dst.PartInteger, opt => opt.MapFrom(src => src.Integer))
.ReverseMap();
var partTwoViewModel = new PartTwoViewModel() { PartInteger = 42 };
var partTwo = Mapper.Map<PartTwoViewModel, PartTwo>(partTwoViewModel);
Assert.AreEqual(partTwoViewModel.PartInteger, partTwo.Integer);
그러나 PartInteger 속성과 Integer가 일치하지 않습니다. (정수는 0입니다.)
이 작업을 수행하는 방법이 있습니까? (두 클래스의 속성이 동일한 이름을 가질 때 작동합니다.) ForMember () 메서드에서 어떤 종류의 옵션을 설정해야합니까?
다음과 같이 구성을 정의 할 수 있습니다.
Mapper.CreateMap<PartTwo, PartTwoViewModel>()
.ForMember(dst => dst.PartInteger, opt => opt.MapFrom(src => src.Integer));
Mapper.CreateMap<PartTwoViewModel, PartTwo>()
.ForMember(dst => dst.Integer, opt => opt.MapFrom(src => src.PartInteger));
최신 정보
다음은 커밋 어디에서 ReverseMap
처음 구현되었습니다. 코드에서 볼 수 있듯이 단순한 역 매핑 만 생성합니다. 예를 들어,이 경우 다음과 같은 항목을 자동으로 구성합니다.
Mapper.CreateMap<PartTwoViewModel, PartTwo>();
더 복잡한 것을 얻으려면 수동으로 구성해야 할 것이 두렵습니다.
ReverseMap
IMappingExpression
매핑의 반전을 나타내는를 반환합니다 . 일단 전화를 걸면 이후의 전화는 맵 반전을 구성하는 것입니다.
예를 들면 다음과 같습니다.
Mapper.CreateMap<CartItemDto, CartItemModel>()
.ForMember(dest => dest.ExtendedCost, opt => opt.Ignore())
.ReverseMap()
.ForMember(dest => dest.Pricing, opt => opt.Ignore())
이것은 Pricing
반대 방향 의 필드를 무시합니다 .
반응형
'IT Share you' 카테고리의 다른 글
Play!를 사용하여 Java 클래스에서 application.conf 속성에 액세스 (0) | 2020.12.09 |
---|---|
Pydoc으로 문서를 어떻게 만드나요? (0) | 2020.12.09 |
Sublime Text에서 창을 제외한 모든 탭을 닫습니다. (0) | 2020.12.09 |
UIActionSheet 만들기 (0) | 2020.12.09 |
유닉스 타임 스탬프를 자바에서 날짜로 변환 (0) | 2020.12.09 |