7.投影

AutoMapper有一种自定义映射,叫投影。接下来我们通过一个示例来了解它

7.1示例

//源对象
public class CalendarEvent
{public DateTime Date { get; set; }public string Title { get; set; }
}//目标对象
public class CalendarEventForm
{public DateTime EventDate { get; set; }public int EventHour { get; set; }public int EventMinute { get; set; }public string Title { get; set; }
}

映射说明:把日期拆开分别映射到不同字段

CalendarEvent中属性 说明 CalendarEventForm的属性
Date Date中的年月日-> EventDate
Date Date中小时-> EventHour
Date Date中分钟-> EventMinute

[TestClass]
public class Projection
{[TestMethod]public void ProjectionTest(){var calendarEvent = new CalendarEvent{Date = new DateTime(2008, 12, 15, 20, 30, 0),Title = "Company Holiday Party"};// 初始化映射Mapper.Initialize(cfg =>cfg.CreateMap<CalendarEvent, CalendarEventForm>().ForMember(dest => dest.EventDate, opt => opt.MapFrom(src => src.Date.Date)).ForMember(dest => dest.EventHour, opt => opt.MapFrom(src => src.Date.Hour)).ForMember(dest => dest.EventMinute, opt => opt.MapFrom(src => src.Date.Minute)));CalendarEventForm form = Mapper.Map<CalendarEvent, CalendarEventForm>(calendarEvent);Assert.AreEqual(new DateTime(2008, 12, 15), form.EventDate); // 通过Assert.AreEqual(20, form.EventHour);// 通过Assert.AreEqual(30, form.EventMinute);// 通过Assert.AreEqual("Company Holiday Party", form.Title);// 通过}
}

转载于:https://www.cnblogs.com/wuyunblog/p/6662386.html

AutoMapper之投影相关推荐

  1. AutoMapper入门使用

    AutoMapper入门使用 在应用开发的过程中,首先要了解整个系统中各个系统的组件的作用,然后了解系统的工作流(workflow),最后需要梳理一遍数据流(dataflow),而在整理数据流的过程中 ...

  2. 理解什么是DTO?什么是AutoMapper?

    什么是DTO? .Net DTO是一个对象,它定义了数据如何在网络上发送.它只用于发送和接收数据,不包含任何业务逻辑.使用DTO的原因有以下几个: 将服务层与数据库层分离 隐藏客户端不需要查看的特定属 ...

  3. java automapper 使用_AutoMapper入门使用

    AutoMapper入门使用 在应用开发的过程中,首先要了解整个系统中各个系统的组件的作用,然后了解系统的工作流(workflow),最后需要梳理一遍数据流(dataflow),而在整理数据流的过程中 ...

  4. java automapper 使用_AutoMapper 使用总结

    初识AutoMapper 在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字 ...

  5. AutoMapper学习

    http://automapper.org/ 这是一款DTO的映射工具,AutoMapper是基于对象到对象约定的映射工具,它可以把复杂的对象模型转为DTO,或者其他的–那些让设计更合理更适于序列化. ...

  6. 【AutoMapper官方文档】DTO与Domin Model相互转换(上)

    [AutoMapper官方文档]DTO与Domin Model相互转换(上) 原文: [AutoMapper官方文档]DTO与Domin Model相互转换(上) 写在前面 AutoMapper目录: ...

  7. 光谱投影颜色感知器件与围栅多桥沟道晶体管技术

    光谱投影颜色感知器件与围栅多桥沟道晶体管技术 一种基于光谱投影的颜色感知器件 光信号是宇宙空间中最重要的信息载体之一,人们对能探测光信号的器件(即光探测器)的研究由来已久.光探测器的应用涉及到国防军事 ...

  8. 各种经典透镜投影模型

    各种经典透镜投影模型 Models for the various classical lens projections 鱼眼镜片与其他镜片同等重要 where fisheye lenses are ...

  9. [AutoMapper]反射自动注册AutoMapper Profile

    AutoMapper 帮我我们方便管理物件跟物件之间属性值格式转换 模型转换 这里有两个类别 UserInfoModel 当作我们从DB捞取出来模型资料 public class UserInfoMo ...

最新文章

  1. php查询mysql表里的数据_php查询mysql数据表记录实现代码
  2. 手写简版spring --3--对象实例化策略
  3. Git和Github的学习
  4. 7-5 公路村村通 (30 分)(C语言实现)
  5. Dede更新提示DedeTag Engine Create File False的解决办法
  6. NameError: name ‘c‘ is not defined--python报错问题
  7. MYSQL禁用与启用事件
  8. C++ string类相关函数
  9. 前端调用接口报错看不到报错响应时 console.dir
  10. math: 雅可比矩阵 黑塞矩阵
  11. Mac访问Github加速
  12. Teststand 中用labview 读写station options属性
  13. ubuntu system setting no everthing
  14. Internet网络行为学
  15. elasticsearch中基于slop参数实现近似匹配
  16. 【软件工程】工程经济学期末复习资料
  17. Elasticsearch - JNA
  18. 通过私有化部署自建一套视频流媒体服务器平台,如何解决视频播放延时卡顿问题?
  19. 软件过程与项目管理-西安电子科技大学
  20. r 语言ylim = c(0 1),小白R语言数据可视化进阶练习一

热门文章

  1. Uva10795 A Different Task
  2. 【转】批量删除redis中的key
  3. 简单的使用Seajs
  4. WinForm ListView
  5. poj 2299 Ultra-QuickSort
  6. 在VC中 改变List列表中一行的颜色
  7. 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
  8. Git初学使用命令记录
  9. ConcurrentHashMap之实现细节(转)
  10. 数据库升级后,准备使用原有数据文件启动数据库