实体框架4.0:实体SQL CAST操作不起作用

时间:2011-01-28 09:11:04

标签: .net entity-framework entity-framework-4 entity-sql

我正在尝试进行查询,我将一个包含整数作为文本的文本列转换为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 个答案:

答案 0 :(得分:5)

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

看起来你正在通过ObjectQuery执行comman。