2011-04-15 18 views
0

我想从第一个select中返回ProductDetailViewModel的列表,但是我似乎没有任何工作。结合这两个选择的正确方法是什么?用Linq返回viewmodel的问题

  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); 

只是要清楚,这个作品我只是想摆脱“合作伙伴” - 选择。

/麦克

+0

刚一说明:是没有意义的调用'ToList'如果你使用LINQ语法,因为它会在另一个'Select' .. – 2011-04-15 09:03:34

回答

0

试试这个:

返回查看( “列表”,partnerCoupons.ToList());

+0

嗨包吧!梅比,我不清楚,但这种情况下,我只是想摆脱“合作伙伴” - 选择。 – 2011-04-15 08:46:34

0
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()); 
+0

嗨!当我尝试获得“序列中没有匹配的元素”时,但如果这是做到这一点的正确方法,那一定是别的。 – 2011-04-15 09:03:32

+0

我不认为它和你发布的内容有什么不同,除非它更紧凑。当没有这样的项目时,通常在调用“First”或“Single”时会得到这样的异常。 – 2011-04-15 09:06:04