2014-10-01 117 views
0

我想選擇我的產品關於他們的標籤。我將一個標籤列表傳遞給該方法。每個產品可以有一個或多個標籤,每個標籤可以應用於一個或多個產品。LINQ加入2列表

我不能管理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答案。 – Magnus 2014-10-01 16:18:03

+0

噢,我可以嗎?我以爲它是automaticaly生成的,我不能在模型中添加它,但我可以嘗試^^ – Lempkin 2014-10-01 19:08:41

回答

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.