EntityDataSource VB.NET中的子句

时间:2014-08-11 19:49:19

标签: sql asp.net vb.net entity-framework

我有一个entitydatasource绑定到我的网页上的gridview。

在后面的代码中,我能够使用entitydatasource的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子句不起作用?

1 个答案:

答案 0 :(得分:2)

EntityDataSource.Where的“IN子句”需要大括号,而不是括号:

whereString = "it.EmployeeID IN {1,4,7}"