【发布时间】:2014-10-04 17:59:13
【问题描述】:
我有一个实体数据源绑定到我网页上的网格视图。
在后面的代码中,我可以使用 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 子句不起作用?
【问题讨论】:
标签: sql asp.net vb.net entity-framework