技巧:Npgsql不支持不建议使用的浮点日期/时间格式

问题描述 投票:0回答:1

我编写了一个C#netcoreapp 3.1 webapi应用程序,试图通过Npgsql.EntityFrameworkCore.PostgreSQL 3.1.0读取Teiid VDB表。

[只要我的应用读取任何这样的数据:

_context.Campaigns.ToList();

发生以下错误:

NotSupportedException: The deprecated floating-point date/time format is not supported by Npgsql.

使用Google搜索,我发现了这一点:Npgsql: Old floating point representation for timestamps not supported。不幸的是,Npgsql.EntityFrameworkCore.PostgreSQL项目stopped supporting弃用了PostgreSQL的浮点日期/时间格式,但Teiid似乎仍在使用它。

[我也尝试过使用.net Core 2应用程序的Npgsql.EntityFrameworkCore.PostgreSQL的旧版本2.2.4,该应用程序没有此问题,但无法从Teiid读取和向其写入双精度值。

AFAIK,从.net Core应用程序访问Teiid数据的唯一可行方法是通过System.Data.ODBC。

在Teiid上是否有任何配置或调整项可以使用新的整数日期/时间格式进行PostgreSQL仿真?

或者,如果没有,是否有计划更新Teiid PostgreSQL仿真?

npgsql teiid
1个回答
0
投票

或者,如果没有,是否有计划更新Teiid PostgreSQL仿真?

我认为这里没有完整描述上下文。 pg仿真的当前状态是它仅支持bytea,integrated,float,double和date类型的二进制格式。驱动程序应该以文本格式发送时间/时间戳。

如果需要其他二进制格式类型的支持,则需要增强。

关于要支持的二进制格式,我们需要匹配我们正在仿真的pg版本的期望值,当前值为8.2。如果有一个连接/会话变量来控制期望的格式,我们可以寻求支持。

支持npgsql的最后一次努力是在两年前,因此他们的驱动程序现在可能正在做我们没有想到的事情。因此,您应该记录有关支持最新和最新版本的增强功能,该功能可以协调任何子任务。

© www.soinside.com 2019 - 2024. All rights reserved.