2010-06-20 2 views
13

저는 제품 컬렉션이 있고 각 제품 객체는 자체 ProductImages 컬렉션을 가지고 있습니다. 각 ProductImage 객체에는 IsMainImage bool 필드가 있습니다.linq을 사용하여 컬렉션의 하위 컬렉션 쿼리

select products.productimages.imagename where products.productid == 1 and  
product.productimages.ismainimage == true 

사람이, 내가이 문제를 알아내는 데 도움이 나는이, 또는 두 가지 모두 같은 LINQ 쿼리를 작성에 대해 배울 수있는 온라인 자원 날 포인트 : 나는 힘든 시간이 같은 LINQ 쿼리를 작성하는 데 문제가?

도움 주셔서 감사합니다.

from product in products 
where product.productid == 1 
from image in product.productimages 
where image.ismainimage 
select image.imagename 

같은

답변

11

시도 뭔가 나 또한 당신을 위해 좋은 정보를 포함 할 수 101 linq queries의 목록을 발견했다.

+1

나는 보통이 페이지를 보았습니다. 거기에있는 예제의 이름은 무엇입니까? 고마워, 내가 받아 들일 때. – TheGeekYouNeed

3

쿼리를 작성하는 또 다른 방법은 제품 1의 메인 이미지 첫 번째 이미지를 선택하는 것입니다

var q = from p in products 
     where p.ProductID == 1 
     select p.ProductImages.First(img => img.IsMainImage); 

나는 이것이 일반적으로 조인에 사용되는 중첩 from 조항 (더 읽을 생각 및 유사한 구조물). First을 사용하는 것이 더 효율적 일 수도 있지만 이는 단지 추측에 불과합니다. (매우 중요하지 않습니다.)

5

.SelectMany() 투영 방법도 사용할 수 있습니다.

 products.Where(product => product.productid == 1) 
       .SelectMany(product => 
             product.productimages.Where(image => image.ismainimage) 
                  .Select(image => image.imagename) 
          ); 
관련 문제