タイプ マッピングを指定すると、AutoMapper はコレクションからコレクションへ自動的にマッピングできます。
Mapper.CreateMap<Model.Run, Run>();
あなたはただ一緒に行くことができます
var runs = Mapper.Map<IEnumerable<Model.Run>, IEnumerable<Run>>(source);
自然に従うため、指定した1対1のマップを使用して、ソースコレクションのすべてのアイテムを宛先コレクションにマップします。従わないのは自動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...);