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

发布于 2024-10-14 17:38:17 字数 654 浏览 4 评论 0原文

我正在尝试进行查询,将包含整数作为文本的文本列转换为 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 中的示例是否错误?我感觉我在这里失去了一些东西......

I'm trying to make a query where I cast a text column, which contains an integer as text, to an Int32. Here's the query:

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

However, I get an System.Data.EntitySqlException with the following message:

Type 'Edm.Int32' could not be found. Make sure that the required schemas are loaded and that the namespaces are imported correctly. Near type name, line 1, column 75.

According to MSDN, Edm.Int32 should be a valid type.

Does anyone know what's wrong?

Edit:

After some trial and error, I found that the following works:

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

Are the examples in MSDN wrong? I feel like I'm missing something here...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

以为你会在 2024-10-21 17:38:17

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

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

If a query is executed with the EntityCommand, the data type is an EDM type, while if the query is executed with ObjectQuery, the data type is a CLR type.

Looks like you are executing the comman via the ObjectQuery.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文