1、实体类
下面是实体类Employee和DTO(数据传输对象)类EmployeeDto
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;}
}
注意:Employee类的Name和EmployeeDto类FullName属性名字是不同的。
2、Automapper 自定义映射规则(属性对应关系)
针对Employee类的Name和EmployeeDto类FullName属性指定自定义映射规则。
Mapper.CreateMap<Employee, EmployeeDto>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));
3、使用Mapper
可以使用上述配置的Mapper对象来进行实际的对象映射操作。
// 创建Mapper对象 var mapper = config.CreateMapper(); // 创建一个示例Employee对象 var employee = new Employee { Id = 1, Name = "John Doe", Phone = "123-456-7890", Fax = "098-765-4321", DateOfBirth = new DateTime(1990, 1, 1) }; // 使用AutoMapper将Employee对象映射到EmployeeDto对象 var employeeDto = mapper.Map<EmployeeDto>(employee); // 输出结果,以验证映射是否成功 Console.WriteLine($"ID: {employeeDto.Id}"); Console.WriteLine($"FullName: {employeeDto.FullName}"); Console.WriteLine($"DateOfBirth: {employeeDto.DateOfBirth.ToString("yyyy-MM-dd")}");