Проблема с возвратом viewmodel с помощью Linq

#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
                    amp;amp; pc.PartnerCampaignID == partCamp.PartnerCampaignID
                          amp;amp; coup.CategoryID == id
                    select pc).ToList();


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


        return View("List", partnerCoupons);
  

Просто чтобы было ясно, это работает, я просто хочу избавиться от выбора «partnercoupons».

/Майк

Комментарии:

1. Просто примечание: нет смысла вызывать, ToList если вы используете синтаксис LINQ, потому что это обернуло бы его в другой Select ..

Ответ №1:

попробуйте это:

верните View («Список», партнерские пары.ToList());

Комментарии:

1. Привет! Возможно, мне было неясно, но этот сценарий работает, я просто хочу избавиться от «partnercoupons»-select.

Ответ №2:

 var coupons = from pc in db.PartnerCoupons
              from coupon in db.Coupons
              where pc.CouponID == coupon.CouponID
                  amp;amp; pc.PartnerCampaignID == partCamp.PartnerCampaignID
                  amp;amp; coupon.CategoryID == id
              select new ProductDetailViewModel (pc);

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

Комментарии:

1. Привет! Когда я пытаюсь это сделать, я получаю «Последовательность не содержит соответствующего элемента», но если это правильный способ сделать это, это должно быть что-то другое..

2. Я не думаю, что это как-то отличается от того, что вы опубликовали, за исключением того, что оно более компактное. Обычно вы получаете такое исключение при вызове First или Single , когда таких элементов нет..