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

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


但是,如果要约上的属性设置为true,我只想将要约列表中的项目映射到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?)


谢谢你的帮助。

标记

最佳答案

您需要使用IEnumerable<OfferVM>Where返回的IList<OfferVM>转换为ToList()

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

关于c# - 使用Where语句的ASP.Net MVC C#AutoMapper,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18366443/

10-12 13:07