Tôi đã đoạn mã sau đó không hoạt động:Lập bản đồ một bộ sưu tập nhóm sử dụng AutoMapper
var groupedZones = this._zoneDataManager.GetZonesGroupedByCountry();
IEnumerable<IGrouping<String, ZoneDTO>> zonesToReturn = Mapper.Map<IEnumerable<IGrouping<String, Zone>>, IEnumerable<IGrouping<String, ZoneDTO>>>(groupedZones);
tôi tiếp tục nhận được ngoại lệ sau đây:
Giá trị \ "System.Collections.Generic. Danh sách
1[SCGRE.Business.Model.ZoneDTO]\" is not of type \"System.Linq.IGrouping
2 [System.String, SCGRE.Business.Model.ZoneDTO] \ " và không thể sử dụng trong bộ sưu tập chung này. \ R \ nTên thông số: giá trị
Tôi không hiểu tại sao nó đang cố gắng để ánh xạ một List<T>
thành một IGrouping<String, T>
hoặc có lẽ tôi đã không hiểu được ngoại lệ đúng ... Nhưng tôi về cơ bản có một IEnumerable<IGrouping<String, Zone>>
và tôi muốn để lập bản đồ nó để IEnumerable<IGrouping<String, ZoneDTO>>
Lưu ý rằng tôi đã tạo ra một bản đồ Zone
-ZoneDTO
như sau:
Mapper.CreateMap<Zone, ZoneDTO>();
Và đó là bởi vì cả hai lớp có gần như chính xác các tính chất tương tự.
Bất kỳ ý tưởng nào?
Tôi đã đơn giản hóa nó và đã chạy một số kiểm tra đơn vị, và tiếc là nó không giống như IGrouping hiện đang được hỗ trợ. Nếu bạn không nhận được giải pháp từ đây, bạn cũng có thể thử [Danh sách gửi thư của AutoMapper] (https://groups.google.com/forum/?fromgroups#!forum/automapper-users) – Mightymuke