我们可以构建一个真正喜欢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;
答案 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;