AutoMapper多个对象映射到一个Dto对象

一、定义源映射对象

为了体现AutoMapper映射特性,在SocialAttribute中的Name属性没有定义在People中,People的Ear属性也不存在与SocialAttribute和PhysicalAttribute中。

640?wx_fmt=png

 代码如下:

640?wx_fmt=png


二、注入AutoMapper

例子中使用的IOC容器是Autofac,不使用Autofac的话,仅用NetCore框架集成的IOC容器也可以实现。

注册AutoMapper必要组件:

640?wx_fmt=png


三、配置映射

ForMember:映射两个类之间的属性关系。

People类中的Ear属性并不存在于任何映射源类中,我们可以使用ForMember(m => m.Ear, n => n.Ignore())忽略该属性,当然也可以不写这段代码,对AutoMapper不会有任何影响,但是为了后期维护更方便,我比较习惯将Dto类的属性写全。

SocialAttribute类中的Name属性不存在与People类中,直接忽略它,Name也不会被AutoMapper赋值。

640?wx_fmt=png


四、调用AutoMapper完成赋值

调用AutoMapper,将PhysicalAttribute和SocialAttribute的值赋给PeopleDto

640?wx_fmt=png


五、运行测试

测试框架使用的xUnit

640?wx_fmt=png


通过测试!

640?wx_fmt=png

 参考项目:https://github.com/FB208/CodeSpace/tree/master/CodeSpace.CSharp/WebMvc/DemoClass/AutoMapperDemo

原文链接:https://www.cnblogs.com/fb208/p/11548250.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

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

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

相关文章

cookie 与 session

1 背景介绍 什么是会话? 用户打开一个浏览器, 点击多个超链接, 访问服务器多个web资源, 然后关闭浏览器, 整个过程称之为一个会话。我们知道,HTTP协议是一种"无状态"协议,客户浏览器与服务器建立连接,发出请求&#x…

Java写一个简单的静态文件的HTTP服务器(基于Socket)

** 一、实现思路 ** 1、使用 ServerSocket 监听某一端口,然后等待连接获取 Socket对象。 2、创建一个类 HttpServer 继承 java.lang.Thread 类,重写 run()方法,执行浏览器请求。 3、获得浏览器请求,解析资源文件路径。 4、读…

asp.net core 使用HttpClientFactory Polly实现熔断降级

前言在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择。处理HttpClient,底层socket套接字不会立即释放。该HttpClient类是未多个请求重复使用而创建的。…

Azure Application Insights REST API使用教程

本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具。新加入的team中的一项工作是制作日常的运维报表,制作方式是手工前往portal.azure.com,在网页中多次执行不同的查询语句、导出excel&#…

用Java Socket实现SMTP邮件发送

目录: 1、邮件基础概念2、Java Mail API介绍3、收发邮件代码示例 PS:如果你想直接拿代码用,可以直接跳到第3部分。 ** 一、邮件基础概念 ** 1.1 邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件…

微软开源新字体Cascadia Code,源于Windows Terminal

微软开源了一套新的字体 Cascadia Code。Cascadia Code 是微软在 5 月份的 Build 大会上宣布推出的等宽字体,微软介绍它是与新的终端 Windows Terminal 一起开发的,官方建议将其与终端应用和 VS、VS Code 等文本编辑器一起使用。Cascadia Code 为命令行和…

进程间通讯的7种方式

1、常见的通信方式 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘…

官宣!VS Code Python 全新功能在 PyCon China 全球首发!

北京时间 2019 年 9 月 21 日,PyCon China 2019 在上海举行。在下午的演讲中,来自微软开发工具事业部的资深研发工程师在演讲中,我们看到了 Azure Notebook 与 VS Code 对 Python 的强大的支持。然而,鱼和熊掌似乎不可兼得。Jupyt…

什么是CDN

一、cdn简介 CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。…

高性能最终一致性框架Ray之基本概念原理

一、Actor介绍Actor是一种并发模型,是共享内存并发模型的替代方案。共享内存模型的缺点:共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错。共享内存受限于单节点的服务器资源限制。Actor模型的优点&…

漫画:程序员带娃日常(1)

我是一名IT界资深人士做过乙方苦哈哈做过甲方做过项目、搞点管理做过培训、也上台演讲不过现在最大挑战、交期最长的项目是。。。带 娃娃子啊,爸爸也是第一次当爸爸,要请你多多指教啦!1“小刘,把这个需求细化一下。”“兄弟们&…

表达式树练习实践:入门基础

什么是表达式树来自微软官方文档的定义:表达式树以树形数据结构表示代码。它能干什么呢?你可以对表达式树中的代码进行编辑和运算。这样能够动态修改可执行代码、在不同数据库中执行 LINQ 查询以及创建动态查询。好不好玩?表达式树还能用于动…

Servlet与线程安全

Servlet与线程安全 先说结论,Servlet本身是单例的,线程安全的。但是如果引入共享变量,则可能会变得线程不安全。 1. 什么是线程安全 首先说明一下对线程安全的讨论,哪种情况我们可以称作线程安全? 《Java并发编程实…

尝鲜体验 VS Code Python 原生 Jupyter Notebook 支持

9 月 21 日,PyCon China 2019 在上海举办。微软的 VS Code 发布了原生的Juypter Notebook 支持。 虽然要等到月底 Marketplace 里面才会正式更新,但 GitHub 上的 repo 已经包含了相应的 commit,所以还是可以通过手动安装的方式尝鲜。现有 VSC…

Java Web之filter、listener、Interceptor

** 1、Servlet ** Servlet 是服务端的 Java 应用程序,用于处理HTTP请求,做出相应的响应。 当客户端向服务器发出HTTP请求时,首先会由服务器中的 Web 容器(如Tomcat)对请求进行路由,交给该URL对应的 Servl…

abp vNext微服务框架分析

abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究。我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来说几乎是看不懂的,所以研究一番后再…

.NET Conf 2019日程(北京时间)

一年一度的 .NET Conf马上就要开始了,我将日程简易的翻译了一下,并且时间全部转换为北京时间,以方便国内.NETer.第1天 (北京时间9月24日).NET Conf 2019 基调 - Scott Hunter Mads Torgersen James Montemagno Olia Gavrysh Daniel Roth Glenn Condron Bri Achtman欢迎来到 .NE…

Hibernate基础

** 一、什么是Hibernate? **   Hibernate是一个轻量级的ORMapping框架   ORMapping原理(Object Relational Mapping) ORMapping基本对应规则: 1:类跟表相对应2:类的属性跟表的字段相对应3&#xff1…

进击的.NET 在云原生时代的蜕变

你一定看过这篇文章 《进击的 Java ,云原生时代的蜕变》, 本篇文章的灵感来自于这篇文章。北京时间9.24 就将正式发布.NET Core 3.0, 所以写下这篇文章让大家全面认识.NET Core。.NET 生态系统是一个不断变化的生态圈,我相信它正在朝着一个伟大的方向发…

Hibernate懒加载问题的5种解决方案

** 1、Hibernate基础 ** Hibernate基础,传送门 ** 2、什么是Hibernate懒加载 ** 当我们查询一个对象的时候,在默认情况下,返回的只是该对象的代理对象,当用户去使用该对象的属性时,才会向数据库再一次发出查询语…