Mam następujący kod, który nie działa:Mapowanie pogrupowany zbiór używając AutoMapper
var groupedZones = this._zoneDataManager.GetZonesGroupedByCountry();
IEnumerable<IGrouping<String, ZoneDTO>> zonesToReturn = Mapper.Map<IEnumerable<IGrouping<String, Zone>>, IEnumerable<IGrouping<String, ZoneDTO>>>(groupedZones);
Wciąż otrzymuję następujący wyjątek:
Wartość \ "System.Collections.Generic. Lista
1[SCGRE.Business.Model.ZoneDTO]\" is not of type \"System.Linq.IGrouping
2 [system.string, SCGRE.Business.Model.ZoneDTO] \” i nie mogą być używane w tym generycznych kolekcji \ r \ nParameter nazwa. wartość
Nie rozumiem, dlaczego stara się odwzorować List<T>
do wiadomości IGrouping<String, T>
czy może ja nie rozumiem wyjątek właściwie ... Ale ja w zasadzie mieć IEnumerable<IGrouping<String, Zone>>
i chcę mapować go IEnumerable<IGrouping<String, ZoneDTO>>
Należy pamiętać, że Stworzyłem mapę z Zone
do ZoneDTO
następująco:
Mapper.CreateMap<Zone, ZoneDTO>();
a to dlatego, że obie klasy mają prawie dokładnie te same właściwości.
Wszelkie pomysły?
Uprościliśmy to i przeprowadziłem kilka testów jednostkowych, a niestety nie wygląda to na to, że IGrouping jest obecnie obsługiwany. Jeśli nie uzyskasz tutaj odpowiedzi, możesz również wypróbować [Listę wysyłkową AutoMapper] (https://groups.google.com/forum/?fromgroups#!forum/automapper-users) – Mightymuke