投影 Projection
投影也是一种转换类型的方法. 按照文档的描述, 它是转换, 而非扁平化 (flattening).
jk: 是不是说
Map
就是扁平化? 这个扁平化不是很理解...
不需要配置, AutoMapper
使用扁平化的目标类型, 来匹配源类型的命名结构. 在命名无法适配的情况下, 如果需要将源类型投影到目标类型上, 那么就需要自定义成员映射.
例如:
由于属性名无法完全匹配, 就需要自定义匹配规则:
// 配置
var conf = new MapperConfiguration(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));
});