#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
, когда таких элементов нет..