我正在尝试进行查询,我将一个包含整数作为文本的文本列转换为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中的示例是错误的吗?我觉得我在这里错过了什么......
答案 0 :(得分:5)
如果使用EntityCommand执行查询,则数据类型为EDM类型,而如果使用ObjectQuery执行查询,则数据类型为CLR类型。
看起来你正在通过ObjectQuery执行comman。