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

Mas*_*Mas 4 .net entity-framework entity-sql entity-framework-4

我正在尝试进行一个查询,我将一个文本列(包含一个整数作为文本)转换为Int32.这是查询:

SELECT VALUE t FROM MyEntities AS t WHERE CAST(t.TextColumn AS Edm.Int32) > 5
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个带有以下消息的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
Run Code Online (Sandbox Code Playgroud)

MSDN中的示例是错误的吗?我觉得我在这里错过了一些东西......

Shi*_*iji 5

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

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