Automapper 是一个用于对象映射的 .NET 库。它可以帮助轻松地将对象从一种类型映射到另一种类型。ASP.NET Core 中使用 AutoMapper 可以帮助高效地在不同类型的对象之间进行自动映射,简化数据转换的工作。

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并添加以下代码, 使用UserUserDto对象作为示例。

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

推荐文档

相关文档

大家感兴趣的内容

随机列表