asp.net core automapper的使用

news2024/11/26 11:41:14

1.安装automapper的nuget包
AutoMapper.Extensions.Microsoft.DependencyInjection
2.创建需要映射的类和转换后的类

public class studto
    {
        public int sn { get; set; }
        public string name { get; set; }
        public string sex { get; set; }
        public int age { get; set; }
        public string addre { get; set; }
    }

    public class stu
    {
        public int sn { get; set; }
        public string name { get; set; }
        public string sex { get; set; }
        public int age { get; set; }
        public string address { get; set; }
    }

3.创建映射类需要继承automapper中的profile类

 public class customProfile : Profile
    {
        public customProfile()
        {          
            //如果dto类中的字段和实体类中的字段名相同就不需要配置字段,字段不相同,则要配置
            CreateMap<stu, studto>()
            //stu类映射到studto类上,studto类中的addre,与stu类中的address类对应
            CreateMap<stu, studto>().ForMember(dest => dest.addre, opt => opt.MapFrom(src => src.address));
        }
    }

4.在program中注入automapper服务

builder.Services.AddAutoMapper(typeof(customProfile));
builder.Services.AddScoped<Iservice, service>();

5.准备好实体数据

public interface Iservice
    {
        List<stu> lsstu();
    }
public class service : Iservice
    {
        public List<stu> lsstu()
        {
            List<stu> stus = new List<stu>();
            stus.Add(new stu() { sn = 1, name = "pzx", sex = "nan", age = 10, address = "pzx" });
            stus.Add(new stu() { sn = 2, name = "pzx", sex = "nan", age = 10, address = "pzx" });
            stus.Add(new stu() { sn = 3, name = "pzx", sex = "nan", age = 10, address = "pzx" });
            return stus;
        }
    }

6.在控制中通过构造函数注入的方式调用automapper的map方法,完成实体转换

 [HttpGet]
        public IActionResult Index()
        {
            var ls = iservice.lsstu();
            List<studto> lsdto = new List<studto>();
            foreach (var item in ls)
            {
                var dtols = _mapper.Map<stu, studto>(item);
                lsdto.Add(dtols);
            }
            return new JsonResult(lsdto);
        }

调用效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1042705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速使用Spring Cache

哈喽~大家好&#xff0c;这篇我们来看看快速使用Spring Cache。 &#x1f947;个人主页&#xff1a;个人主页​​​​​ &#x1f948; 系列专栏&#xff1a;【日常学习上的分享】 &#x1f949;与这篇相关的文章&#xff1a; R…

数据结构之道:如何选择适合你的数据存储

文章目录 第1节&#xff1a;数据结构的基本原理1.1 时间复杂度和空间复杂度1.2 数据的访问方式1.3 数据的增删操作 第2节&#xff1a;常见的数据结构2.1 数组&#xff08;Array&#xff09;2.2 链表&#xff08;Linked List&#xff09;2.3 栈&#xff08;Stack&#xff09;2.4…

数字化卡券拉新怎么做?卡券营销系统如何裂变用户

卡券促销活动对于大众用户而言是一种常见的营销手段&#xff0c;也是一种推动产品销售的方式&#xff0c;针对不同类型的营销诉求&#xff0c;同类型的卡券活动也需要配置不同的落地手段&#xff0c;才能更好地抓住消费者的心理&#xff0c;达到增收的目的&#xff0c;如何借助…

Interceptor内存马

Interceptor是SpringMVC中的拦截器&#xff0c;类似于Servlet中的Filter&#xff0c;主要针对Controller层进行拦截请求。 Interceptor的注册过程 在DispatcherServlet#doDispatch方法中的会调用getHandler方法&#xff08;可接Controller查找部分&#xff09;&#xff0c;在…

选择适合的项目管理工具,助力出海企业

当下全球化的加速推进&#xff0c;越来越多的企业开始寻求海外市场的机会&#xff0c;从而迎来了充满机遇的前景&#xff1a;市场多元化&#xff0c;降低单一市场风险&#xff0c;实现更稳健的增长&#xff1b;技术创新&#xff0c;不同地区的市场需求可能会激发新的技术创新&a…

通用CI/CD软件平台TeamCity推出代理终端功能,谁能从中获益?

JetBrains官方在TeamCity中推出代理终端&#xff1a;这项新功能专门用于帮助用户轻松查看代理上的系统日志、检查已安装的软件&#xff0c;以及直接从 TeamCity 的 UI 调试特定代理问题。 TeamCity是一个通用的 CI/CD 软件平台&#xff0c;可以实现灵活的工作流、协作和开发做…

增强for循环和一般for循环的对比使用

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。个人B站主页热爱技术的小郑 &#xff0c;视频内容主要是对应文章的视频讲解形式。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘…

智能回答机器人的“智能”体现在哪里?

人工智能的广泛应用已经成为当今社会科技发展的趋势之一。通过人工智能技术&#xff0c;我们可以在不同领域中实现自动化、智能化和高效化&#xff0c;从而大大提升生产和生活效率。智能回答机器人的出现和使用便能很好的证明这一点。今天我们就来探讨一下智能会打机器人的“智…

全网最全Python系列教程(非常详细)---数值篇讲解(学Python入门必收藏)

&#x1f9e1;&#x1f9e1;&#x1f9e1;这篇是关于Python中数值的讲解&#xff0c;涉及到以下内容&#xff0c;欢迎点赞和收藏&#xff0c;你点赞和收藏是我更新的动力&#x1f9e1;&#x1f9e1;&#x1f9e1; 涉及到&#xff1a; 数值表现形式进制之间的转换常用操作 1 表…

C++与QML交互总结二

目录 1.CPP调用QML 1.1 QMetaObject::invokeMethod调用 1.2 CPP中的信号绑定qml中的槽 2.QML调用CPP 2.1 QML单实例注册 2.2 将类对象注册到QML的上下文中 2.3 QML信号调用CPP槽 3.QML中注入一个cpp实例 3.1qmlRegisterType 3.2QML_ELEMENT 4.附加属性: QML_ATTACHE…

了解MES:提升制造业的效率与竞争力

今天我将和大家分享关于MES&#xff08;Manufacturing Execution System&#xff0c;制造执行系统&#xff09;的知识。随着制造业的发展和变革&#xff0c;MES作为一个关键的信息技术工具&#xff0c;已经成为许多企业提升效率和竞争力的重要策略之一。 MES的定义与作用 MES是…

孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署

原创 | 文 BFT机器人 1、华为孟晚舟新发声&#xff0c;华为发布“全面智能化”战略 上周三&#xff08;9月30号&#xff09;上午&#xff0c;华为全联接大会2023正式在上海举行&#xff0c;作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声&#xff01;在演讲上&am…

数值微分比较

对于序列 { x n } x 1 , x 2 , ⋯ , x n \{x_n\} x_1, x_2, \cdots, x_n {xn​}x1​,x2​,⋯,xn​&#xff0c;求其导数 { x n ′ } \{x_n\} {xn′​}。 一、精度 O ( h ) O(h) O(h) x k ′ { x 2 − x 1 h , k 1 x k − x k − 1 h , k 2 , 3 , ⋯ , n x_k \begin{ca…

优化多设备体验,让您的应用为 Samsung 全新设备做好准备

作者 / Android 开发者关系团队总监 Maru Ahues Bouza 从可折叠设备创新到无缝连接&#xff0c;Google 和 Samsung 一直携手合作&#xff0c;致力于打造适用于 Android 手机、平板电脑、智能手表等设备的实用体验。近期&#xff0c;在首尔举行的 Galaxy Unpacked 发布会上&…

权威认可!安全狗获CNVD“漏洞信息报送贡献单位”殊荣

9月24日&#xff0c;国家信息安全漏洞共享平台公布了2022年度CNVD支撑单位年度工作情况及优秀单位个人表彰名单。 作为国内云原生安全领导厂商&#xff0c;安全狗入选漏洞信息报送贡献单位。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;成立于2…

C++,模板 /泛型(添加)

4、非类型函数模板参数 模板元编程是一种通过在编译时执行代码来生成程序的技术。它利用C模板系统的强大功能&#xff0c;在编译阶段进行计算和推导&#xff0c;支持的类型只有整型。 例1&#xff1a; 例2&#xff1a; 可以有默认值,当有多个默认值时&#xff0c;要全部位于最…

BUUCTF刷题十一道(09)

文章目录 October 2019 Twice SQL Injection[GYCTF2020]EasyThinking[BJDCTF2020]EzPHP[HFCTF2020]JustEscape(vm2沙箱逃逸)[GXYCTF2019]StrongestMind[GKCTF 2021]easycms[SUCTF 2018]GetShell[b01lers2020]Life on Mars[WMCTF2020]Make PHP Great Again[MRCTF2020]Ezaudit[CS…

奥迪 Q7 e-tron | 无法通过插电式充电器充电

虽然电动汽车似乎是未来的方向&#xff0c;但插电式混合动力车辆在实现最佳两全之间似乎是当下的主流。这类车辆可以纯电动驾驶&#xff0c;满足当前城市的低排放规定&#xff0c;然而&#xff0c;在内燃机的支持下&#xff0c;我们可以无缝地行驶&#xff0c;充分利用无需担心…

WebDAV之π-Disk派盘 + 纸间书摘

纸间书摘是专为喜欢做读书笔记的小伙伴量身打造的专属书摘app,不仅仅可以从别的app中导入图书,并且还能来帮助你选择性复制可以来轻松的搞定哦 所有功能完全免费,没有广告,不限制识别次数。 多种备份,本地备份和基于WebDAV协议的云端备份。 丰富的书摘导出功能,用户可…

求职应聘,在线测评要不要真实的去做?

求职的朋友们&#xff0c;今年的行情不容乐观&#xff0c;所以要更加努力才能争取到理想的工作岗位。找工作是一个不衰的话题&#xff0c;不仅仅是大学毕业生们&#xff0c;职场人都绕不过去的话题。 如今越来越的企业采用在线测评&#xff0c;在知乎上很多盆友都遇到了&…