2017-09-13 54 views
0

我有一個automapper輪廓,並用高級開發人員工作時,他給了我一個指針做一個IEnumerable一個創建地圖,我得到了一些編碼,但現在我卡住了。CreateMap爲IEnumerable的

我想這

CreateMap<IEnumerable<BusinessInfo>, IEnumerable<AdminViewModel.Account>>().ForAllMembers(i => i.Ignore()); 
CreateMap<IEnumerable<BusinessInfo>, IEnumerable<AdminViewModel.Account>>() 
       .ForMember(i => i.COMPANY, opt => opt.MapFrom(p => p.Company)) 

,但公司有差錯,因爲它不包含公司的定義...... 我想我失去了一些東西,但我不能確定它是什麼。

+0

你會通常只定義地圖的個別型號,而不是[模型集合(https://開頭github上。 com/AutoMapper/AutoMapper/wiki/Lists-and-arrays)'CreateMap ()'。然後AutoMapper將能夠映射集合。看到你想要映射的類將會很有幫助。 – Jasen

回答

1

你爲什麼映射IEnumerable<Type>? 它不包含Company的定義,因爲它是一個集合。

你可以只是做映射BusinessInfoAdminViewModel.Account

Mapper.CreateMap<BusinessInfo, AdminViewModel.Account>()... // do your usual or w/e custom mapping you want. 

然後你只想做這樣的事情......

var adminAccountViewModel = Mapper.Map<IEnumerable<BusinessInfo>, IEnumerable<AdminViewModel.Account>>(businessInfo); 
+0

那麼,這就是主要開發人員希望我這樣做的原因。這是一個結果頁面。我很快就要開始上大學了,所以我不知道他爲什麼要我這樣做,甚至是真的......這意味着什麼...... –

+0

@String_Chez好的,如果你看第二個片段,它返回一個「集合」。它做你需要做的事情。 – 12seconds

+0

所以你會使用adminAccountViewModel int控制器? (businessinfo)連接到什麼? –