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")}");