반응형
속성 이름이 다른 경우 매핑 규칙을 지정하는 방법
저는 Automapper 프레임 워크의 초보자입니다. 다음과 같이 도메인 클래스와 DTO 클래스가 있습니다.
public class Employee
{
public long Id {get;set;}
public string Name {get;set;}
public string Phone {get;set;}
public string Fax {get;set;}
public DateTime DateOfBirth {get;set;}
}
public class EmployeeDto
{
public long Id {get;set;}
public string FullName {get;set;}
public DateTime DateOfBirth {get;set;}
}
참고 : 클래스의 " Name " 속성 이름 은 Employee
클래스의 " FullName " 속성 이름 과 다릅니다 EmployeeDto
.
다음은 Employee
객체를 매핑하는 코드입니다 EmployeeDto
.
Mapper.CreateMap<Employee, EmployeeDto>(); // code line (***)
EmployeeDto dto = Mapper.Map<Employee, EmployeeDto>(employee);
내 질문은 : Employee
(소스 클래스)를 EmployeeDto
(대상 클래스)에 매핑하려면 매핑 규칙을 어떻게 지정할 수 있습니까? 다시 말해, 위의 코드 줄 (***)로 어떻게 더 많은 것을해야합니까?
신경 쓰지 마라. 나는 스스로 해결책을 찾았다.
Mapper.CreateMap<Employee, EmployeeDto>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));
정말 오래된 스레드이지만 Automapper 8.1 이상을 사용하여 위의 주석을 업데이트 된 접근 방식으로 롤링합니다 ...
var mapConfig = new MapperConfiguration(
cfg => cfg.CreateMap<Employee, EmployeeDto>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name))
);
그런 다음 mapConfig를 사용하여 매퍼를 빌드합니다.
var mapper = mapConfig.CreateMapper();
반응형
'development' 카테고리의 다른 글
Django로 '대량 업데이트'하는 방법은 무엇입니까? (0) | 2020.06.29 |
---|---|
실행중인 git 버전을 어떻게 알 수 있습니까? (0) | 2020.06.29 |
C #에서 액션 대리자의 사용 (0) | 2020.06.29 |
else 절로 if ... else if 구문을 종료하면 어떤 이점이 있습니까? (0) | 2020.06.29 |
GitHub에서 자신의 저장소를 어떻게 포크합니까? (0) | 2020.06.29 |