.NET 6.0 如何使用对象映射库AutoMapper
AutoMapper是一个非常流行的对象到对象映射(Object-to-Object Mapping)库,它可以帮助开发人员简化对象之间的转换工作。在软件开发中,我们经常需要将一个对象的属性值映射到另一个对象的属性上,而手动进行属性复制会显得冗长和重复。AutoMapper通过自动执行对象属性之间的映射,大大简化了这个过程。
通俗来讲就是前后端分离项目的时候,我们拿一个DTO接收前端给的一些值,但这个DTO中包含了两个实体类的所有属性,这时我们就要将这些DTO中的属性分配给对应的实体类中,来完成CRUD的操作, 我们复古的方式就是new出来一个对象然后一一赋值,这样就大大浪费了一些时间,所以我们就要采用AutoMapper来解决这些花费的时间(需要注意的是转换的时候是按照DTO和实体类中统一的属性名进行匹配来转换的),它可以在DTO和实体类之间进行转换,当然也可以在ToList和ToList之间进行转换。
直接上代码
在WebAPI中下载NuGet包
然后在WebAPI下创建一个实体类继承自Profile,接着写一个构造函数(这个构造函数中主要写的就是一些转换,下面会有详细的使用方法)
其次就是在Program.cs中进行注入
到这一步以后已经就可以正常使用了
接下来是两个个例子
场景:现在有一个UserRoleDTO,这里包含了User实体类中所有的属性,另外包含了Role的Id属性
我们通过AutoMapper将UserRoleDTO中属于User的属性赋值给User
第一步:在这个构造函数中写出要进行映射的实体类,这里ReverseMap()是反转的意思,这样两个可以互相映射,如果没有写这个那么只能TUser和UserRoleDto进行映射
写好以后就要开始使用了,在我们的控制器或者业务层通过构造函数的方式注入进来
然后就是使用
这里做个比较 以上是使用了AutoMapper,以下是没有使用AutoMapper
这样就可以显而易见的看出两个的效率,假设没有使用AutoMapper的话,就需要花费大量的时间一一赋值
这里呢我们自己测试的时候可以加断点看一下每一行的变化,当然也可以是ToList之间的转换,如下
这就是使用AutoMapper的基本使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探