经过一番解决之后,我想你不能做类似的事情
Mapper.CreateMap<IEnumerable<IGrouping<String, Zone>>, IEnumerable<IGrouping<String, ZoneDTO>>>()
具体来说,AutoMapper支持的源集合类型包括:(仅Generic
types)
IEnumerable, IEnumerable<T>, ICollection, ICollection<T>, IList, IList<T>, List<T>, Arrays
AutoMapper 不支持IGrouping
因为它是非泛型可枚举类型。
相反,您可以执行以下简单方法,
var zones = this._zoneDataManager.GetZones(); // Write new method in your ZoneDataManager
var zoneDTOs = Mapper.Map<List<Zone>, List<ZoneDTO>>(zones);
IEnumerable<IGrouping<String, ZoneDTO>> zonesToReturn = zoneDTOs.GroupBy(z => z.Country);
请阅读this http://automapper.codeplex.com/wikipage?title=Lists%20and%20Arrays。希望这可以帮助。