2014-10-01 5 views
0

태그와 관련하여 내 제품을 선택하고 싶습니다. 메소드에 태그 목록을 전달합니다. 각 제품에는 하나 이상의 태그가있을 수 있으며 각 태그는 하나 이상의 제품에 적용될 수 있습니다.LINQ join 2 lists

내가 LINQ에 번역 관리 할 수 ​​있지만, SQL의 쿼리는 다음과 같습니다

SELECT * 
FROM products, tagproducts, tags 
where products.productId = tagproducts.Product_productId 
and tagproducts.Tag_tagId = tags.tagId 
and tags.tagId IN (1,2); 

을 내가 가입 사용해야 할 것 같아요,하지만 내가 원하는 것을 얻을 수있는 방법을 찾을 수 없습니다. 어떤 생각?

+1

모델에'tagproducts'가 없으면 (삭제 된 답변 중 하나에 대한 의견으로) 어떻게 데이터를 가져올 수 있습니까? 모드에 추가 한 다음 @DavidG answer를 사용하십시오. – Magnus

+0

오 할 수 있을까요? automaticaly로 생성 된 모델로 추가하지 말아야한다고 생각했지만 시도해 볼 수 있습니다 ^^ – Lempkin

답변

0
var tagIDs = new List<int> { 1, 2 }; 
var products = Products.Where(x => x.TagProducts.Any(y => tagIDs.Contains(y.TagID))); 
//to get info from the products, . into them 
var tagNames = products.TagProducts.Select(x => x.Tags.TagName); //or whatever.