我有一个实体数据源绑定到我的网页上的网格视图。
在后面的代码中,我可以使用实体数据源的 WHERE 语句过滤并在 gridview 中显示我想要的内容。我的 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.Where 的“IN 子句”需要花括号,而不是圆括号:
whereString = "it.EmployeeID IN {1,4,7}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)