1

使用 AutoMapper - 在将域映射到视图模型时,是否可以使用 where 语句来限制映射到视图模型的内容,例如。我使用以下内容将 Offer 列表映射到 OfferVM 视图模型:

vm.Offers = Mapper.Map<IList<Offer>, IList<OfferVM>>(offers);

但是,如果 Offer 上的属性设置为 true,我只想将列表 Offer 中的项目映射到 OfferVM,例如:

vm.Offers = Mapper.Map<IList<Offer>, IList<OfferVM>>(offers)
           .Where(x => x.RoomName1s==true);

但这给出了错误:

Cannot implicitly convert type
'System.Collections.Generic.IEnumerable<FGBS.ViewModels.OfferVM>'
  to 
'System.Collections.Generic.IList<FGBS.ViewModels.OfferVM>'. 
 An explicit conversion exists (are you missing a cast?)

谢谢你的帮助。

标记

4

2 回答 2

3

您需要将IEnumerable<OfferVM>返回的 byWhere转换为IList<OfferVM>usingToList()

 vm.Offers = Mapper.Map<IList<Offer>, IList<OfferVM>>(offers)
       .Where(x => x.RoomName1s==true)
       .ToList();
于 2013-08-21T19:54:04.990 回答
1

您需要添加一个.ToList()以将 IEnumerable 转换为列表。

于 2013-08-21T19:55:23.953 回答