在ASP.NET CORE中使用AUTOMAPPER

AutoMapper基本用法 AutoMapper的基本用法AutoMapper的使用场景 AutoMapper的使用场景 AutoMapper是对象到对象的映射工具。在完成映射规则之后,AutoMapper可以将源对象转换为目标对象。 表现层于应用层之间是通过DTO来进行交互的,数据传输对象是没有行为的POCO对象,他的目的是为了对领域对象进行数据封装,实现层与层之间的数据传递。为何不直接将领域对象进行数据传递?因为领域对... 阅读详情

普通的模型映射

现在有两个类,实体类Student和返回展示的 View类StudentView
在这里插入图片描述
在这里插入图片描述
两个实体类字段还基本可以,不是很多,假如字段非常非常多,还需要手动去赋值的话,简直太痛苦了。
在这里插入图片描述
在这里插入图片描述
想了想这才是一个方法,一般的系统都会少则几十,多则上百个这样的方法,这还不算,大家肯定遇到过一个情况,如果有一天要在页面多显示一个字段,噗!不是吧,首先要存在数据库,然后在该实体类就应该多一个,然后再在每一个赋值的地方增加一个,而且也没有更好的办法不是,一不小心就少了一个,然后被产品测试说咱们不细心,心塞哟,别慌!神器来了,一招搞定。

先来引入DTO讲解

我们已经知道了ORM(Object Relational Mapping)映射,是一种对象关系的映射,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

而Automapper是一种实体转换关系的模型,AutoMapper是一个.NET的对象映射工具。主要作用是进行领域对象与模型(DTO)之间的转换、数据库查询结果映射至实体对象。

引入AutoMapper的包

在这里插入图片描述

在Services层中引用Nuget包,AutoMapper 和AutoMapper.Extensions.Microsoft.DependencyInjection

AutoMapper.Extensions.Microsoft.DependencyInjection,这个是用来配合依赖注入的,

在项目当中,都使用依赖注入,尽量不要用new 来实例化,导致层耦合

添加映射文件 AutomapperConfig.cs

在web项目中,新建文件夹,Automapper,添加配置映射配置文件AutomapperConfig.cs,继承自Profile类,用来配置所有的映射关系。
在这里插入图片描述
这里的 Profile有什么用呢,是 services.AddAutoMapper他会自动找到所有继承了Profile的类然后进行配置。我这个类是放在Web层的,如果Profile配置放在其他的层比如Service层,如下图:直接耦合
在这里插入图片描述
使用AutoMapper实现模型映射,并注入

那此时Startup类里面的配置就可以写成 services.AddAutoMapper(Assembly.Load("Service"));它会自动加载Service的程序集并从这里面找到继承了profile类的配置实现。

如果profile配置放在了web层,那就相当于把配置类和Service层进行了解耦,那么配置中可以写
在这里插入图片描述
实现接口的方法中使用mapper
在这里插入图片描述控制器调用接口,并传输数据,最终在index页面上显示:
在这里插入图片描述
在这里插入图片描述
前端显示:
在这里插入图片描述是不是少了一个Name呢,原因是,我们配置的source和destination两个类的字段不是完全相同的,但是有时候这两个字段实际上是相同的。

我们可以,加上配置:
在这里插入图片描述
如果不想映射某个字段:我们还可以:
在这里插入图片描述
这样子,我们完成了映射类的配置:忽略age的映射,并将原始类的name给到StudentView的StudentName,这样子,前端显示肯定是18消失了,转而出现了张国荣字样,我们来看看是不是呢?
在这里插入图片描述哦?张国荣字样确实出来了,可为什么会多出个0呢?

原因是,在C#的数据类型当中,int类型属于值类型,是不能为空的,默认给了0,我们尝试将model实体类的age改为可空类型试试。
在这里插入图片描述前端测试如下:
在这里插入图片描述果然age消失了。好了今天的学习就到这里结束了

【ASP.NET Core】ASP.NET Core使用AutoMapper 在实际的项目开发过程中,我们使用各种ORM框架可以使我们快捷的获取到数据,并且可以将获取到的数据绑定到对应的List中,然后页面或者接口直接显示List中的数据。但是我们最终想要显示在视图或者接口中的数据和数据库实体之间可能存在着差异,一般的做法就是去创建一些对应的“模型”类,然后对获取到的数据再次进行处理,从而满足需求。因此,如果便捷的实现数据库持久化对象与模型对象之间的实体映射,避免在去代码中手工实现这一过程,就可以大大降低开发的工作量。AutoMapper就是可以帮助我们实现实体转换过程的工具。 阅读详情

相关推荐

双向魔术师AutoMapper:ASP.NET Core Web API中的数据变形计,你掌握了吗?

AutoMapper,这位数据转换界的超级英雄,能让你摆脱手动映射的繁琐,自动将对象从一种类型转换为另一种类型。在ASP.NET Core Web API中,它常用于实体(Entity)与数据传输对象(DTO)之间的转换,让API的输入输出更加清晰和安全。

java专栏 1159

ASP.NET Core教程:ASP.NET Core使用AutoMapper

一、前言 在实际的项目开发过程中,我们使用各种ORM框架可以使我们快捷的获取到数据,并且可以将获取到的数据绑定到对应的List<T>中,然后页面或者接口直接显示List<T>中的数据。但是我们最终想要显示在视图或者接口中的数据和数据库实体之间可能存在着差异,一般的做法就是去创建一些对应的“模型”类,然后对获取到的数据再次进行处理,从而满足需求。 因此,如果便捷的实现数据库持久化对象与模型对象之间的实体映射,避免在去代码中手工实现这一过程,就可以大大降低开发的工作量。AutoMap

songjuntao8的专栏 1295

ASP.NET Core 6中的AutoMapper配置指南

在我们的酒店管理系统中,我们使用了Entity Framework Core进行数据库操作,同时引入了AutoMapper来简化对象间的映射。在ASP.NET Core 5中,我们通常使用来注册AutoMapper的映射配置。但是,在升级到ASP.NET Core 6后,这个方法不再适用,导致了运行时的错误。通过这个实例,我们可以看到在ASP.NET Core 6中配置AutoMapper的关键步骤在于正确地使用来注册映射配置。这样的配置不仅解决了升级过程中出现的错误,还确保了代码的可维护性和效率。

m0_74337424的博客 175

ASP.NET Core 集成 AutoMapper 的介绍和实际开发应用

AutoMapper是一个对象-对象映射器(OOM),它主要用于在.NET应用程序中实现对象之间的自动转换。在ASP.NET Core项目中,AutoMapper特别有用,因为它可以极大地减少手动编写映射代码的工作量,从而提高开发效率。AutoMapper的工作原理是通过配置源对象和目标对象之间的映射关系,然后自动执行这些映射。这意味着,当源对象的数据发生变化时,AutoMapper可以自动将这些变化应用到目标对象上,而无需手动编写代码来更新目标对象。

战族狼魂的博客 1674

ASP.NET Core Web API变形记:AutoMapper复杂映射,告别手写映射烦恼

通过这篇教程,你已经掌握了AutoMapper在ASP.NET Core Web API中的使用,无论是基础映射还是复杂映射,都能轻松应对。AutoMapper就像你的私人助手,为你承担起繁重的映射工作,让你的代码更加专注业务逻辑,简洁而高效。现在,去施展你的变形术,让你的Web API项目焕发出新的光彩吧!

java专栏 1718

从0到高手:一文解锁ASP.NET Core中AutoMapper的3大魔法秘密

对象映射,简单来说,就是把一个对象的属性值复制到另一个对象相同或相似属性的过程。在Web开发中,我们经常需要在业务对象(如实体类)和视图模型之间转换数据。手动做这件事,就像是亲手给每个南瓜雕刻车轮,既繁琐又容易出错。而AutoMapper,就是那个能自动完成这一切的神奇助手,它通过配置好的映射规则,让你的代码看起来既简洁又优雅。假设我们有两个类,Person和,我们想要在它们之间建立映射关系。set;set;set;set;set;接着,在AutoMapper的配置中添加映射规则,注意我们还需要处理。

java专栏 755

ASP.NET Core Web中使用AutoMapper进行对象映射

在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂、庞大的时候还容易出现错误。为了解决这个问题,对象映射库就随之而出了,这些库可以自动完成对象之间的映射,从而减少大量的开发工作量,提高开发工作效率。今天我们来讲讲在ASP.NET Core Web中使用AutoMapper快速进行对象映射。

风清扬的专栏 1164

2021-06-28 .NET高级班 73-ASP.NET Core AutoMapper的使用

//AutoMapper 是第三方的包 static void Main(string[] args) { try { { //硬编码 var source = new Source() { Id = 1234, Name = "Richard老师", Age = 33 }; .

微软MVP Eleven 4万+

ASP.Net Core Webapi使用AutoMapper

ASP.Net Core使用AutoMapper 前言 原文博客链接 由于优快云界面越来越烂,因此自己搭建了一个博客网站,上面的链接是我自己的个人博客网站地址,希望大家可以去上面阅读我的文章,优快云只是用来备份数据 http://www.lizhenghao.site/blog/2022/01/12/152 个人的博客首页: 博客首页 AutoMapper的作用 在Webapi中如果我们不使用AutoMapper,在接收参数后我们如果需要存入数据库中,需要这样写 public IActionResult

李正浩的博客 871

AutoMapper.Extensions.Microsoft.DependencyInjection

Microsoft.Extensions.DependencyInjection的AutoMapper扩展 扫描程序集并: 将配置文件添加到映射配置 向容器添加值解析器,成员值解析器,类型转换器。 要与IServiceCollection实例和一个或多个程序集一起使用,请执行以下操作: services . AddAutoMapper ( assembly1 , assembly2 /* , ... */ ); 或标记类型: services . AddAutoMapper ( type1 , type2 /* , ... */ ); 这将注册AutoMapper: 作为MapperConfiguration的单例 作为IMapper的瞬时实例 ITypeConverter实例为瞬态 IValueConverter实例为瞬态 IValueResolver实例为瞬态 IMem

全国排污许可证数据

from tkinter import * # 导入窗口控件 import tkinter.filedialog import requests from lxml import etree from tkinter import ttk from bs4 import BeautifulSoup import webbrowser # 调用浏览器打开网页 from tkinter import messagebox # 弹出提示框 from openpyxl import Workbook imp.

Newnotes的博客 3385

ASP.NET CORE 中使用AutoMapper进行对象映射

ASP.NET CORE 中使用AutoMapper进行对象映射 1、什么是AutoMapper? AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨服务范畴。 AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样。 AutoMapper包含以下功能:平展、投影、配...

dianfeihou1445的博客 386

两轮差速机器人运动学模型

两轮差速底盘 1.1、底盘说明 两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。 主要底盘有: 1、Turtlebot; 2、扫地机器人; 3、无人仓AGV小车; 4、轮椅; 底盘主要特点: 1、控制简单、里程计计算简单。 2、只能给定X方向速度、Z轴方向角速度。 1.2、底盘运动学分析 1.2.1、底盘模型 图1.2.1 常见的两轮差速底盘模型 1.2.2、机器人本身约束方程(物理特性) 图1.2.2 a 左侧是车的两个

su_fei_ma_su的博客 3万+

在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

一、前言  在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的List<T>集合中,因为我们最终想要在页面...

dotNET跨平台 932

多边形裁剪算法

多边形裁剪算法 刚参加工作就跟多边形刚上了,对于多边形的裁剪做一些简单的总结。 多边形裁剪主要有四种算法 Greiner-Hormann裁剪算法 Sutherland-Hodgman算法 Vatti裁剪算法 Weiler-Atherton裁剪算法 作为一名想要成为优秀算法工程师的程序员,我们不能只会使用,而不知道其原理,倘若如此,我们无法做到应用于本身业务上的定制化的修改。 Greiner–H...

papalqi 6726

脑影像分析入门:如何用一般线性模型(GLM)处理fMRI数据?

本文为神经影像研究入门者详细解析了如何运用一般线性模型(GLM)处理fMRI数据。文章从GLM的核心原理出发,逐步拆解了从实验设计、构建稳健设计矩阵、模型估计与统计推断,到高阶分析及多重比较校正的全流程,并指出了常见陷阱与结果解读要点,是掌握fMRI数据分析基础的关键指南。

weixin_29091445的博客 397

asp.net core 3.1.x 中使用AutoMapper

AutoMapper作用 AutoMapper的作用是把一个对象转化为另一个对象,避免每次都去转化; 使用DTO实现表现层与领域Model的解耦,用AutoMapper来实现DTO与领域Model的相互转换; 基于访问性的控制或从模型本身上考虑。对外开放的原则是,尽量降低系统耦合度,否则内部一旦变更外部所有的接口都要跟随发生变更;另外,系统内部的一些数据或方法并不希望外部能看到或调用。类似的考虑很多,只是举个例子。系统设计的原则是高内聚低耦合,尽量依赖抽象而不依赖于具体。这里感觉automapper就

ChaITSimpleLove的博客 993

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4508

​​ASP.NET​​ Core中AutoMapper用法

ASP.NET Core中AutoMapper用法AutoMapper是什么?AutoMapper 是一个对象-对象映射器,可以将一个对象映射到另一个对象。官网地址:http://automapper.org/官方文档:https://docs.automapper.org/en/latest/一、配置Profile...

weixin_37021133的博客 154

TensorRT量化校准数据集选择

在TensorRT中进行INT8量化时,校准数据集的选择至关重要,直接影响量化后模型的精度和推理性能。这是一个典型的问题。

浩瀚之水的专栏 497

【MeshLib & VTK】MeshLib PK VTK

本文分享三维几何处理库MeshLib,并将其与VTK进行对比,希望对各位小伙伴有所帮助!

qq_40041064的博客 1070

AutoMapper在asp.net core的使用

题记 AutoMapper一直之前都是这样使用的: Mapper.Initialize(cfg => cfg.CreateMap<Order, OrderDto>()); //or var config = new MapperConfiguration(cfg => cfg.CreateMap<Order,...

weixin_34248118的博客 205

【Python爬虫(1)】专栏开篇:夯实Python基础

要想熟练掌握 Python 爬虫技术,扎实的 Python 基础是必不可少的。这就好比建造高楼大厦,Python 基础就是那稳固的基石。只有打好了这个基础,我们才能在爬虫的学习道路上稳步前行,理解并运用各种爬虫技术和框架。

邓邓子的博客 2025

ASP.NET Core搭建多层网站架构【8.2-使用AutoMapper映射实体对象】

ASP.NET Core搭建多层网站架构【8.2-使用AutoMapper映射实体对象】 2020/01/29, ASP.NET Core 3.1, VS2019, AutoMapper.Extensions.Microsoft.DependencyInjection 7.0.0 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【8.2-使用AutoMapper映射实体对象】 用依赖注入的方法使用AutoMapper映射 文章目录 此分支项目代码 本章节介绍了使用A

月亮哥的专栏 386

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

vo和实体相互转换_在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

一、前言  在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的List集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能存在很大的差异,所以这里更常见的方法是去创建一些对应于页面数据展示的`视图模型`类,通过对获取到的数据进行二次加工,从而满足实际页面显示的需要。  因此,如何更便捷的去实现数据库持久化对象与视图...

weixin_39989688的博客 202

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: ASP.NET Core 依赖注入基础测试题
下一篇: asp.net core集成JWT的步骤记录
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值