实体框架4.0:实体SQL CAST操作无法工作

4

我正在尝试进行一个查询,其中我将包含整数的文本列转换为Int32。以下是查询:

SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS Edm.Int32) > 5

然而,我遇到了一个System.Data.EntitySqlException异常,消息如下:
“类型 'Edm.Int32' 无法找到。请确保已加载所需的架构并正确导入命名空间。靠近类型名称,行1,列75。”
根据MSDN,Edm.Int32应该是一个有效的类型。
有人知道出了什么问题吗?
编辑:
经过一些试验,我发现以下内容可以正常工作:
SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS System.Int32) > 5

MSDN上的示例是错误的吗?我觉得我在这里漏掉了什么...

1个回答

5

如果使用EntityCommand执行查询,则数据类型为EDM类型,而如果使用ObjectQuery执行查询,则数据类型为CLR类型。

看起来您是通过ObjectQuery执行命令。


我正在使用 ObjectContext.CreateQuery<T>()。这解释了问题! - Mas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接