AutoMapper对象映射器

AutoMapper是一个库,用于自动化对象到对象的映射过程,减少繁琐的转换代码。通过Nuget安装后,创建配置文件夹和Profile类来定义映射规则,然后在服务注册中加入AutoMapper。在需要映射的地方,通过依赖注入使用IMapper接口进行转换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于约定的对象-对象映射器。消除将一个对象映射到另一个对象的所有麻烦。

官网:http://automapper.org/文档:https://automapper.readthedocs.io/en/latest/index.html

一、什么是 AutoMapper?


AutoMapper 是一个简单的小库,旨在解决一个看似复杂的问题——摆脱将一个对象映射到另一个对象的代码。这种类型的代码写起来相当枯燥乏味,那么为什么不发明一个工具来为我们做呢?

映射可以出现在应用程序的许多地方,但主要是在层之间的边界,例如 UI/Domain 层或 Service/Domain 层之间。一层的关注点经常与另一层的关注点发生冲突,因此对象-对象映射导致分离模型,其中每一层的关注点只能影响该层中的类型。

二、使用


1、Nuget安装

安装这两个

install-package   AutoMapper
install-package   AutoMapper.Extensions.Microsoft.DependencyInjection

2、创建一个文件夹来配置映射关系

这是全部的文件夹

3、 添加继承 Profile 的映射关系类 AutoMapper

xxxxxxxxxx public class AutoMapperConfig : Profile    {        /// <summary>        /// 在构造函数中配置映射关系        /// </summary>        public AutoMapperConfig()        {            CreateMap<Users, UsersRes>();            CreateMap<Roles, RolesRes>();                    }    }

这里是把Users对象映射成到usersRes对象

4、注册服务 在program类中注册

builder.Services.AddAutoMapper(typeof(AutoMapperConfig));

5、通过注入IMapper 消费

public class UsersServiceImp : UsersService
    {
        private readonly IMapper _mapper;
        //构造函数依赖注入
        public UsersServiceImp(IMapper mapper)
        {
            _mapper = mapper;
        }
        public List<UsersRes> GetUsers(UsersReq req)
        {
            var res = RoleTestContext.db.Queryable<Users>().Where(x => x.UId == req.UId || x.UName == req.UName).ToList();

            //转化
            return _mapper.Map<List<UsersRes>>(res);
        }
        ....
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值