2010-02-14 4 views
3

나는 수정하는 방법을 모르겠지만 라이트 문제가 있습니다. 아래 예제에서 ProductItem이 활성화 된 ProductCategories 목록을 선택하고 싶습니다.엔티티에 linq - 람다 식 포함

public IEnumerable<ProductCategory> ListProductCategories() 
     { 
      return _entities.ProductCategorySet.Include("ProductItems").Where(x => x.ProductItems.Active == true).ToList();    
     } 

문제는 내가 내 람다 식의 Active productItem 속성에 액세스 할 수 없다는 것입니다, 문제는 무엇인가? 위와 같은 linq 쿼리를 작성하려고 할 때 전체적으로 잘못 생각한다고 생각하십니까?

답변

6

두 개 이상의 항목이있을 수 있습니다.

return _entities.ProductCategorySet 
       .Include("ProductItems") 
       .Where(x => x.ProductItems.All(item => item.Active)) 
       .ToList(); 
+0

솔루션이 정말 문제가 해결되지 않은 : 모든 항목이 활성화 어디에 당신은 아마 범주를 선택합니다. 솔루션은 모든 제품 항목에 대해서만 productcategories를 반환합니다. 그들이 능동적인지 아닌지는 중요하지 않습니다. 내가 반환하고자하는 것은 productitems가 활성화 된 경우에만 모든 productcategories 및 productitems입니다. – Webking

+1

아마도 Any 대신 Any를 원하십니까? 내 대답을 업데이트 할게. –