gpt4 book ai didi

c# - Entity Framework 连接到 Oracle : ODP for . NET "does not support time"

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:41 25 4
gpt4 key购买 nike

我设置了一个 Entity Framework ,其中我有一个通过连接字符串配置的远程 Oracle 服务器,但我没有运行一些单元测试来确认连接。我正在使用 Oracle.ManagedDataAccess.Client

我收到错误:System.NotSupportedException:适用于 .NET 的 Oracle 数据提供程序不支持时间

我以前找不到任何人收到此错误。我在想我的 Oracle 数据库中的表可能有很多时间提及,但它们只有 DATE。我必须这样做,我将无法为这个项目以不同的方式访问数据库。

是什么导致了这个错误?我该如何补救?

最佳答案

如果您将日期存储为“2015-06-30 08:13:24”,这是一个日期时间文字。

作为documentation

ODP.NET does not support Time literals and canonical functions related to the Time type.

在您的表格中查找存储为 VARCHAR2 的日期。根据经验,我可以说 EF4 至少在 DATE 或 TIMESTAMP 字段方面没有问题,因此您必须在其他地方遇到问题。

我通常不会考虑将时间存储在 CHAR 变量中。在 EF 中,我经常不得不将值转换为更可接受的数据类型。例如:

select CAST(your_date ||' '||your_time AS DATE) AS your_field from your_table;

您可能遇到了在列名称中使用 Oracle 关键字的问题。这是一个 list Oracle 关键字和保留字。 TIME 包含在列表中。如果您有名为 TIME 的列名称,这可能是您的问题。

尝试查看将 TIME 重命名为 TIME_T 或其他名称的表。

关于c# - Entity Framework 连接到 Oracle : ODP for . NET "does not support time",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31188287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com