Bootstrap
本文主要介绍在ASP.NET Core中,通过Nuget安装Automapper,和Automapper的配置,以及使用的demo示例代码。

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