zoukankan      html  css  js  c++  java
  • AutoMapper之投影

    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);// 通过
        }
    }
  • 相关阅读:
    disruptor 高并发编程 简介demo
    mysql 关于join的总结
    Mysql查询结果导出为Excel的几种方法
    初识ganglia
    Mybatis概述
    struts2中的拦截器
    hessian在ssh项目中的配置
    Hessian基础入门案例
    activiti工作流框架简介
    Oracle中的优化问题
  • 原文地址:https://www.cnblogs.com/wuyunblog/p/6662386.html
Copyright © 2011-2022 走看看