2013-03-01 3 views
0

Ниже я пытаюсь передать список ints, чтобы возвращать все продукты с идентификатором product == == для каждого int.Возможно ли это с Linq?

public IQueryable<Product> GetProductsForSubCat(List<int> prodSubResult) 
     { 

      if (prodSubResult != null) 
      { 
       var _db = new ProductContext(); 

       IQueryable<Product> query = _db.Products; 

       foreach (int x in prodSubResult) 
       { 
        query = _db.Products.Where(p => p.ProductID == x); 



       } 
        return query; 
      } 
      return null; 
     } 
+1

Почему вы хотите это сделать? Если список содержит более одного элемента, он всегда должен возвращать пустую коллекцию. – JaredPar

+4

. Вы уже должны знать, что возможно с LINQ. – evanmcdonnal

ответ

8

Да, можно, и это довольно прямо вперед:

var query = _db.Products.Where(p => prodSubResult.Contains(p.ProductId)); 
+0

Это верно, если OP не ищет 'IEnumerable >' для возврата. Наверное, нет, но пока неясно, какая возможность. – Bobson

+0

@Bobson Да, я только что основал свой ответ на описание того, что хотел OP, а не предоставленная реализация (в которой есть другие недостатки). –

+0

Каковы недостатки этого? – jackncoke

Смежные вопросы