自动映射实体和模型

使用 AutoMapper 自动映射实体和模型

AutoMapper 是一个对象映射工具,可以自动映射实体对象和模型对象,减少手动映射的工作量,提高开发效率,除此之外 Mapster 也是一个高性能的对象映射工具,支持源生成代码,性能更好。AutoMapper 比 Mapster 更加流行,更加成熟,更加稳定,更加易用,更加灵活,更加强大,更加全面,更加受欢迎。AutoMapper 是 .NET Foundation 的一部分,是一个开源项目,是一个非常优秀的对象映射工具。

安装 NuGet 包

dotnet add package AutoMapper

在依赖注入中注册 AutoMapper

builder.Services.AddAutoMapper(Assembly.GetExecutingAssembly());

创建映射配置文件


public class MappingProfile : Profile
{
    public MappingProfile()
    {
        CreateMap<User, UserDto>();
        CreateMap<UserDto, User>();
    }
}

使用 AutoMapper 映射实体和模型


public class UserService
{
    private readonly IMapper _mapper;

    public UserService(IMapper mapper)
    {
        _mapper = mapper;
    }

    public UserDto GetUser(int id)
    {
        var user = _dbContext.Users.Find(id);
        return _mapper.Map<UserDto>(user);
    }

    public void UpdateUser(UserDto userDto)
    {
        var user = _mapper.Map<User>(userDto);
        _dbContext.Users.Update(user);
        _dbContext.SaveChanges();
    }
}

分页模式

常见的分页模式有两种,一种是基于页码和页大小的分页模式,一种是基于游标和页大小的分页模式。