Profile 구성

Profile의 역할: 방대한 매핑 규칙을 독립적인 클래스로 분리하여 Main 메서드에 모두 몰아넣지 않고, 여러 엔티티 매핑을 쉽게 관리할 수 있게 합니다.

1. 커스텀 Profile 클래스

AutoMapper가 제공하는 Profile을 상속받아 생성자 안에 매핑 관계를 작성하며, CreateMap을 여러 개 한꺼번에 쓸 수 있습니다.

using AutoMapper;

/// <summary>
/// 매핑 구성 클래스
/// </summary>
public class MappingProfile : Profile
{
    public MappingProfile()
    {
        // Person → People
        CreateMap<Person, People>();
        // People → Person, 양방향 매핑
        CreateMap<People, Person>();
    }
}
// [코드 블록 내 중국어 번역]
// 매핑 구성 클래스
// Person → People
// 양방향 매핑
Code language: HTML, XML (xml)

방법 1: 초기화 시 Profile 추가

Mapper.Initialize(x => x.AddProfile<MappingProfile>());
Code language: JavaScript (javascript)

방법 2: 전체 구문, Profile 객체 인스턴스화

var mc = new MapperConfigurationExpression();
mc.AddProfile(new MappingProfile());
Mapper.Initialize(mc);
// [코드 블록 내 중국어 번역]
// Profile 객체 인스턴스화
Code language: JavaScript (javascript)

2. 여러 Profile 로드하기

프로젝트 비즈니스가 복잡해지면 Profile 클래스를 여러 개로 분리하게 됩니다. 한 번에 모두 등록할 수 있습니다:

Mapper.Initialize(x =>
{
    x.AddProfile<MappingProfile>();
    x.AddProfile<MappingProfile2>();
});
Code language: HTML, XML (xml)

전체 Program 예제

class Program
{
    static void Main(string[] args)
    {
        // ========= 구성: Profile 매핑 로드 =========
        Mapper.Initialize(x => x.AddProfile<MappingProfile>());

        // 소스 객체, 대상 객체
        Person p = new Person()
        {
            Age = 12,
            Name = "Tom",
            Birthday = DateTime.Now,
            Sex = true,
            Salary = 10000
        };

        People peo = new People()
        {
            Age = 36,
            Name = "Jack",
            Birthday = DateTime.Now,
            Sex = true,
            Salary = 102000
        };

        // 정방향 매핑 Person → People
        Mapper.Map(p, peo);
        // 역방향 매핑 People → Person
        Mapper.Map(peo, p);

        Console.WriteLine(peo.Name);
        Console.WriteLine(p.Name);
        Console.ReadKey();
    }
}
// [코드 블록 내 중국어 번역]
// 구성: Profile 매핑 로드
// 소스 객체, 대상 객체
// 정방향 매핑 Person → People
// 역방향 매핑 People → Person
Code language: JavaScript (javascript)

Profile 구성

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다