一、什么是AutoMapper
AutoMapper is a simple little library built to solve a deceptively complex problem - getting rid of code that mapped one object to another.
谷歌翻译过来:
AutoMapper是一个简单的小型库,用于解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码。
个人理解是一个实例到另一个实例的映射。
使用方法如下
AutoMapper.Mapper.CreateMap<User, UserDto>();
var model = AutoMapper.Mapper.Map<UserDto>(user);
以上代码会根据相同参数名进行映射,如果有额外的要求,如不同参数映射,忽略某个参数,如下
//将User.Role.Id赋值给UserDto.RoleId
public class User
{
public Role Roler;
public long Id;
}
public class UserDto
{
public long RoleId;
public long Id;
}
AutoMapper.Mapper.CreateMap<User, UserDto>().ForMember(dest => dest.RoleId,
opts => opts.MapFrom(src => src.Roler.Id));
//忽略UserDto.Id的映射
CreateMap<User, UserDto>().ForMember(dto => dto.id, opt => opt.Ignore());