2017-09-13 22 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)连接到什么? –