一、定义源映射对象

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

代码如下:

二、注入AutoMapper

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

注册AutoMapper必要组件:

三、配置映射

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

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

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

四、调用AutoMapper完成赋值

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

五、运行测试

测试框架使用的xUnit

通过测试!

参考项目: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

AutoMapper多个对象映射到一个Dto对象相关推荐

  1. jaxb 映射 空字段_推土机:将JAXB对象映射到业务/域对象

    jaxb 映射 空字段 Dozer是开放源代码( Apache 2许可 )" Java Bean到Java Bean映射器,可将数据从一个对象递归复制到另一个对象". 正如从其主页 ...

  2. orika 映射非空字段_Orika:将JAXB对象映射到业务/域对象

    orika 映射非空字段 这篇文章着眼于使用Orika将JAXB对象映射到业务域对象. 本月初, 我使用基于反射的Dozer讨论 了相同的映射用例 . 在本文中,我假设需要映射相同的示例类,但是它们将 ...

  3. 推土机:将JAXB对象映射到业务/域对象

    Dozer是开放源代码( Apache 2许可 )" Java Bean到Java Bean映射器,可将数据从一个对象递归复制到另一个对象". 正如从其主页上的描述所描述的那样,它 ...

  4. Orika:将JAXB对象映射到业务/域对象

    这篇文章着眼于使用Orika将JAXB对象映射到业务域对象. 本月初, 我使用基于反射的Dozer讨论 了相同的映射用例 . 在本文中,我假设需要映射相同的示例类,但是它们将使用Orika而不是Doz ...

  5. 定义一个dto对象_业务代码的救星——Java 对象转换框架 MapStruct 妙用

    在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domainobject,将 domainobject 转为数据持久层的 dataobje ...

  6. 定义一个dto对象_正确理解DTO、值对象和POCO

    (此文章同时发表在本人微信公众号"dotNET每日精华文章") 今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和PO ...

  7. java静态注解处理器_java – 使用mapstruct中的builder(使用immutables注释处理器)将对象映射到不可变对象...

    我们使用 immutables framework生成所有DTO.现在我们想用 mapstruct将这些对象映射到另一个.但生成的DTO是不可变的,没有setter,也没有构造函数,对应于builde ...

  8. java创建response对象_创建一个HttpResponse对象

    创建一个HttpResponse对象 HttpResponse类实现了javax.servlet.http.HttpServletResponse.跟随它的是一个叫做 HttpResponseFaca ...

  9. 定义一个dto对象_java里面Dto对象跟VO的区别

    经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应 ...

最新文章

  1. ASP.NET保持用户状态的九种选择
  2. 【重建】从FJOI2016一试谈起
  3. Shuttle ESB实现消息推送
  4. linux关闭xdmcp服务,使用Xmanager远程CentOS 7服务器(XDMCP)
  5. 04 | 深入浅出索引(上)
  6. 57. Insert Interval
  7. 点云3D目标检测学习(1):pointnet、pointnet++模型
  8. C语言刷抖音源码,iOS多种刷新样式、音乐播放器、仿抖音视频、旅游App等源码...
  9. [扩展中国剩余定理(EXCRT)]
  10. idea项目没法继承httpservlet_SpringBoot项目发布为war
  11. NXP Pico i.MX7D上安装Android Things系统疑难杂症汇总
  12. mysql binlog c++_关于MySQL的日志管理(binlog)
  13. jtopo绘图帧数与cpu使用率
  14. php主控,IcePHP框架中的快速后台中的通用CRUD功能框架(五) SCrud 主控类
  15. [转帖]怎样选择(FC-SAN)光纤通道(存储)交换机
  16. 如何把Win7系统桌面上的内容保存在非系统盘
  17. java中乘法计算的三种方式 位运算中的另一种运算 — 左移运算
  18. word2007使用笔记 - 标题的分级编号
  19. 容器:forward_list用法及示例
  20. CTFSHOW: 36D杯 misc ez-qrcode

热门文章

  1. 开机的时候重新设置密linux管理员的密码
  2. esxi.主机配置上联端口_为什么现代的电脑机箱仍然具有USB 2.0端口?
  3. 修改docker的默认存储位置及镜像存储位置
  4. Spring Security入门(3-4)Spring Security 异常处理、异常传递和异常获取
  5. curl   liinux下http命令执行工具
  6. PHP中 对象自动调用的方法:__set()、__get()、__tostring()
  7. OpenSSL--Window生成证书实战
  8. 看懂通信协议:自定义通信协议设计之TLV编码应用
  9. (转)64bit上安装32位oracle 10 g出现错误:无法定位承诺工序输入点 getprocessimagifilenamew 于动态链接库PSAPI.DLL...
  10. .net core 中如何有效屏蔽重复提交