我在尝试将数组映射到类型时遇到问题。我收到以下错误
Missing type map configuration or unsupported mapping.
Mapping types:
Run[] -> Run
目标项目是一个运行,源是一个运行(数组)......我在 global.asax 中设置了我的映射
Mapper.CreateMap<Model.Run, Run>();
任何想法,我想我错过了一些东西。
我在尝试将数组映射到类型时遇到问题。我收到以下错误
Missing type map configuration or unsupported mapping.
Mapping types:
Run[] -> Run
目标项目是一个运行,源是一个运行(数组)......我在 global.asax 中设置了我的映射
Mapper.CreateMap<Model.Run, Run>();
任何想法,我想我错过了一些东西。
当您指定类型映射时,AutoMapper 可以自动映射集合到集合,因此当您有:
Mapper.CreateMap<Model.Run, Run>();
你可以一起去
var runs = Mapper.Map<IEnumerable<Model.Run>, IEnumerable<Run>>(source);
因为它自然地遵循 - 它使用您指定的一对一映射将源集合的每个项目映射到目标集合。不遵循的是自动T -> T[]
或T[] -> T
映射,映射器在映射时应该做什么T[] -> T
?从数组中取出第一项?或者也许是最后一个?做某种聚合?如果集合是空的怎么办?
您必须为此编写一个单独的完整地图,例如:
Mapper.CreateMap<Model.Run[], Run>()
.ForMember(x => x.NumericMember, expr => expr.MapFrom(y => y.Sum(z => z.NumericMember)))
.ForMember(//etc...);