Asp.net mvc 使用Linq返回viewmodel时遇到的问题

Asp.net mvc 使用Linq返回viewmodel时遇到的问题,asp.net-mvc,linq,Asp.net Mvc,Linq,我想从第一次选择返回ProductDetailViewModel列表,但我所做的一切似乎都不起作用。将这两种选择结合起来的正确方法是什么 var test = (from pc in db.PartnerCoupons from coup in db.Coupons where pc.CouponID == coup.CouponID &&

我想从第一次选择返回ProductDetailViewModel列表,但我所做的一切似乎都不起作用。将这两种选择结合起来的正确方法是什么

            var test = (from pc in db.PartnerCoupons
                    from coup in db.Coupons
                    where pc.CouponID == coup.CouponID
                    && pc.PartnerCampaignID == partCamp.PartnerCampaignID
                          && coup.CategoryID == id
                    select pc).ToList();


        var partnerCoupons = from pc in test
                 .Select(s => new ProductDetailViewModel(s))
                 .ToList()
                    select pc;            


        return View("List", partnerCoupons);
我只是想澄清一下,这是有效的,我只是想摆脱“PartnerCouples”-select

/迈克

试试这个:


返回视图(“列表”,partnerCouples.ToList())

嗨!也许我不清楚,但这个场景是可行的,我只是想摆脱“PartnerCouples”—选择。嗨!当我尝试得到“序列不包含匹配的元素”时,但如果这是正确的方法,那么它一定是其他的东西。我不认为它与您发布的内容有任何不同,只是它更紧凑。通常,在第一次调用
时,或者在没有此类项的情况下调用
Single
时,您会遇到此类异常。请注意:如果使用LINQ语法,调用
ToList
是没有意义的,因为它会将其包装在另一个
Select
中。。
var coupons = from pc in db.PartnerCoupons
              from coupon in db.Coupons
              where pc.CouponID == coupon.CouponID
                  && pc.PartnerCampaignID == partCamp.PartnerCampaignID
                  && coupon.CategoryID == id
              select new ProductDetailViewModel (pc);

return View ("List", coupons.ToList ());