如何使用数组实现Linq Where In查询

时间:2016-06-20 16:36:56

标签: sql linq

我们可以构建一个真正喜欢SQL In的Linq where子句吗?像:

int[] ids = { 1, 2, 3, 4, 5};    
var query = from item in db.myTable
            where item.ID In ids
            select item;

我知道我们可以使用像下面这样的Contains关键字,但我想拆分where子句而不使用本地数组id,这样我就可以将where子句保存在表中以重用它。我将在DB中保存实际数据{1,2,3,4,5},而不是本地变量。

int[] ids = { 1, 2, 3, 4, 5};    
var query = from item in db.myTable
            where ids.Contains(item.ID)
            select item;

1 个答案:

答案 0 :(得分:1)

查询应遵循类似的模式,您只需从其他表中提取值,而不是将它们放在数组中。

var ids = db.someTable.Where(...).Select(e => e.ID);
var query = from item in db.myTable
        where ids.Contains(item.ID)
        select item;