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