Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在INT列上带有或条件的linq动态where子句_C#_Sql_Asp.net_Sql Server_Linq - Fatal编程技术网

C# 在INT列上带有或条件的linq动态where子句

C# 在INT列上带有或条件的linq动态where子句,c#,sql,asp.net,sql-server,linq,C#,Sql,Asp.net,Sql Server,Linq,我正在尝试使用linq查询根据帐户id动态选择记录。帐户id是sql server中的int列 var idList = new int[123, 456]; //these number change with each user. foreach (var id in idList) { query = query.WHERE(cs => cs.pkID = id); } 以上内容使其成为一个AND where子句。我宁愿是手术室。 上面的idList可以包含1到10

我正在尝试使用linq查询根据帐户id动态选择记录。帐户id是sql server中的int列

var idList = new int[123, 456];   //these number change with each user.
foreach (var id in idList) {
      query = query.WHERE(cs => cs.pkID = id);
}
以上内容使其成为一个AND where子句。我宁愿是手术室。 上面的idList可以包含1到100。根据每个用户的不同而不同

如何使用OR子句使linq工作。Contains对INT列不起作用

希望select的外观与此类似

 select * from table where id = 123 or id = 456
我还有一些其他的列可以附加到where子句中。获得动力或工作让我头疼


谢谢。

您可以使用
cs=>idList.Contains(cs.pkID)

在您的情况下,使用Contains比使用
创建动态where子句更有意义

query = query.WHERE(cs => idList.Contains(cs.pkID);
你可以用这样的东西


使用原始查询查看我们的查询:=is not==in C#。

SQL将在中使用
其中id in(123456)
。我正在使用linq来解决这个问题。请直截了当。@user3434990虽然为这个问题提供的重复链接非常有用,但我认为在您的案例中使用Contains是一个更好的选择。Contains不是您的选项idList@user3434990这是使用列表时的一个选项。我相信您可以使用
idList.Cast().Contains(cs.pkID)
如果您必须使用ArrayTanks,请重新设置worked@user3434990欢迎:)如上所述,idList.Contains不是一个选项。我的意思是它在属性列表中不可用。只需添加一个.ToList()?
SELECT somecolumns FROM sometable WHERE pkId in (123, 456)
query = query.WHERE(cs => idList.Contains(cs.pkID);