2011-12-08 77 views
0

的名單,我有以下LINQ查詢LINQ哪裏 - >比較多頭

var q = from e in dbTov.assignedTaxonomyToContents 
where e.taxonomy_id == lsTaxID[0] 
|| e.taxonomy_id == lsTaxID[1] 
|| e.taxonomy_id == lsTaxID[2] 
select e; 

但是,lsTaxID中可以有幾個項目(我不知道有多少,這是每個動態頁面請求)。

是否有一種直觀的方式來實現這一點?

感謝

+0

你寫這意味着taxonomy_id必須等於lsTaxID方式[0]和lsTaxID [1]和lsTaxID [2],你真的意味着或任何的他們? –

+0

@vc 74的確,我的意思是,而不是和 – Ozkan

+0

你應該已經表明你正在使用Linq to SQL,我的回答只適用於Linq的對象(我將刪除它) –

回答

1

使用包含:

var q = from e in dbTov.assignedTaxonomyToContents 
where lsTaxID.Contains(e.taxonomy_id) 
select e; 
0

試試這個:

var q = 
    from e 
    in dbTov.assignedTaxonomyToContents 
    where lsTaxID.Contains(e.taxonomy_id); 
+0

你的答案不完整。我想你的意思是最後有'(e.taxonomy_id)'。 –

+0

我覺得我發佈時切碎了。 –

0

假設分類ID必須匹配任何項目的lsTaxID數組中:

dbTov.assignedTaxonomyToContents 
    .Where(e => lsTaxID.Any(id => id == e.taxonomy_id)) 
0

除非lsTaxID [..]的所有元素都相同,否則您的示例代碼將永遠不會選擇任何內容。嘗試這個;

var q = from e in dbTov.assignedTaxonomyToContents 
where lsTaxID.Contains(e.taxonomy_id) 
select e; 
1

嘗試

where lsTaxId.Contains(e.taxonomy_id)