如何在linq where子句中检查数组中的所有值

时间:2013-02-22 23:28:11

标签: arrays linq where clause

这是我想要实现的目标。我有一个带有attributeids的数组(比如int [] {5,6})。在SQL中我会动态构建它:

select * from table1 inner join table2 on table1.id=table2.id where table2.attributeid = 5 and table2.attributeid=6

在LINQ我试图这样做

int[] attributeids = new int[] {5,6};
from x in table1
join y in table2 on table1.id equals table2.id
where attributeids.contains(table2.attributeid)
select e

但是这将是一个OR,即如果table2的attributeid值存在于attributesids中的每一行,Contains将解析为true并且它将选择该行,而我希望它仅在两个值匹配时才选择。有没有办法可以动态地构建where子句字符串或更精细的方式在LINQ本身内完成它... 我已经在下面的链接中找到了并且想要完全相反(而不是使用包含OR,我需要一个AND) Linq query with Array in where clause?

0 个答案:

没有答案