AutoMapper官方文档(六)【投影】
2017-11-28 11:24
197 查看
投影
投影将源换为目标,而不是将对象模型展平。 没有额外的配置,AutoMapper需要一个平坦的目标地来匹配源类型的命名结构。 如果要将源值映射到与源结构不完全匹配的目标,则必须指定自定义成员映射定义。 例如,我们可能想要转向这个源代码结构:
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.Date需要是
CalendarEventForm.EventDate),因此我们需要在我们的类型映射配置中指定自定义成员映射:
// 模型 var calendarEvent = new CalendarEvent { Date = new DateTime(2008, 12, 15, 20, 30, 0), Title = "Company Holiday Party" }; // 配置AutoMapper 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); form.EventDate.ShouldEqual(new DateTime(2008, 12, 15)); form.EventHour.ShouldEqual(20); form.EventMinute.ShouldEqual(30); form.Title.ShouldEqual("Company Holiday Party");
每个自定义成员配置都使用一个动作委托来配置每个成员。 在上面的例子中,我们使用
MapFrom选项来执行自定义的源到目标成员映射。
MapFrom方法将
lambda表达式作为参数,然后在映射期间对其进行评估。
MapFrom表达式可以是任何
Func<TSource, object>lambda表达式。
相关文章推荐
- AutoMapper官方文档(八)【内联映射】
- AutoMapper官方文档(十七)【配置】
- 【AutoMapper官方文档】DTO与Domin Model相互转换(中)
- AutoMapper官方文档(五)【反向映射和复杂化】
- AutoMapper官方文档(十八)【条件映射,开放泛型,了解你的映射】
- AutoMapper官方文档(九)【列表和数组】
- AutoMapper官方文档(十)【嵌套映射】
- AutoMapper官方文档(三)【约定】
- AutoMapper官方文档(十二)【自定义值解析器】
- AutoMapper官方文档(四)【扁平化(分割)映射】
- AutoMapper官方文档(十三)【值转换器,Null替换,Map行为前后】
- Android官方开发文档Training系列课程中文版:OpenGL绘图之应用投影与相机视图
- 【AutoMapper官方文档】DTO与Domin Model相互转换(上)
- AutoMapper官方文档(七)【配置验证】
- 【AutoMapper官方文档】DTO与Domin Model相互转换(中)
- AutoMapper官方文档(十四)【依赖注入】
- 【AutoMapper官方文档】DTO与Domin Model相互转换(下)
- 【AutoMapper官方文档】DTO与Domin Model相互转换(上)
- AutoMapper官方文档(一)【入门】
- AutoMapper官方文档(十一)【自定义类型转换器】