我的网页上有一个绑定到gridview的entitydatasource。
在后面的代码中,我可以使用entitydatasource的WHERE语句过滤并向网格视图显示所需的内容。我的where语句之一使用大的OR语句进行过滤,但是逻辑上比较多的IN语句不起作用。
例如,我有雇员1-9,并且我想选择雇员1、4和7。在SQL中,我可以通过以下两种方式:
1。
SELECT * FROM table WHERE EmployeeID = 1 OR EmployeeID = 4 OR EmployeeID = 7
2。
SELECT * FROM table WHERE EmployeeID IN (1,4,7)
这两个语句在SQL中对我来说都很好
使用EF时,只有选项1才能选择这些特定员工。为了创建此语句,我有一个for循环,该循环创建一个whereString,最终看起来像这样:
whereString = "it.EmployeeID = 1 OR it.EmployeeID = 4 OR it.EmployeeID = 7" EntityDataSource.Where = whereString
如果我将whereString设置为此
whereString = "it.EmployeeID IN (1,4,7)"
这没用。为什么这个模仿SQL代码中使用的格式的where子句不起作用?
EntityDataSource的“ IN子句”。需要大括号而不是括号:
whereString = "it.EmployeeID IN {1,4,7}"