2013-03-01 2 views
0

아래 제품 ID ==를 가진 모든 제품을 각 int로 반환하기 위해 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