1、通过Nuget安装Automapper
参考文档:Nuget的使用
可以通过Nuget命令或Nuget图形界面来安装,
PM> Install-Package AutoMapper -Version 7.0.1
2、通过Nuget安装Automapper依赖注入(DI)包
PM> Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection -Version 5.0.1
3、创建一个映射配置文件类
我在主解决方案目录中创建了一个类,MappingProfile.cs
并添加以下代码, 使用User
和UserDto
对象作为示例。
public class MappingProfile : Profile {
public MappingProfile() {
//添加需要映射对象
CreateMap<User, UserDto>();
CreateMap<UserDto, User>();
}
}
4、在Startup.cs文件中,如下所示添加AutoMapperConfiguration
public void ConfigureServices(IServiceCollection services) {
//...省略之前的代码
//Auto Mapper Configurations
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new MappingProfile());
});
IMapper mapper = mappingConfig.CreateMapper();
services.AddSingleton(mapper);
services.AddMvc();
}
5、在代码中调用生成映射对象
public class UserController : Controller {
//用来存储mapper对象
private readonly IMapper _mapper;
//在构造函数中传入依赖注入对象
public UserController(IMapper mapper) {
_mapper = mapper;
}
public async Task<IActionResult> Edit(string id) {
//实例化源对象
//(从数据库或代码调用的任何地方获取)
var user = await _context.Users
.SingleOrDefaultAsync(u => u.Id == id);
//实例化映射数据传输对象(dto)
var model = _mapper.Map<UserDto>(user);
}
}