【问题标题】:EntityDataSource Where Clause in VB.NETVB.NET 中的 EntityDataSource Where 子句
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

    • 没问题,@Khamey。很高兴我能帮助你。我不确定该语法的综合文档在哪里,但如果我找到它,我会在此处放置一个链接。
    猜你喜欢
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多