Ho il seguente codice che non funziona:Mappare un insieme raggruppato utilizzando automapper
var groupedZones = this._zoneDataManager.GetZonesGroupedByCountry();
IEnumerable<IGrouping<String, ZoneDTO>> zonesToReturn = Mapper.Map<IEnumerable<IGrouping<String, Zone>>, IEnumerable<IGrouping<String, ZoneDTO>>>(groupedZones);
Continuo a ricevere la seguente eccezione:
Il valore \ "System.Collections.Generic. lista
1[SCGRE.Business.Model.ZoneDTO]\" is not of type \"System.Linq.IGrouping
2 [System.String, SCGRE.Business.Model.ZoneDTO] \" e non può essere utilizzato in questa collezione generica \ r \ nParameter nome:. valore
Non capisco il motivo per cui si sta cercando di mappare una List<T>
in un IGrouping<String, T>
o forse non ho capito l'eccezione correttamente ... Ma io in fondo avere un IEnumerable<IGrouping<String, Zone>>
e voglio farlo corrispondere ad IEnumerable<IGrouping<String, ZoneDTO>>
Si noti che ho creato una mappa Zone
-ZoneDTO
come segue:
Mapper.CreateMap<Zone, ZoneDTO>();
E questo perché entrambe le classi hanno quasi esattamente le stesse proprietà.
Qualche idea?
L'ho semplificato e ho eseguito alcuni test unitari e, sfortunatamente, non sembra che l'IGrouping sia attualmente supportato. Se non ottieni alcuna risoluzione da qui, potresti anche provare la [Mailing list di AutoMapper] (https://groups.google.com/forum/?fromgroups#!forum/automapper-users) – Mightymuke