我编写了一个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.
谷歌搜索我发现这个:Npgsql:不支持时间戳的旧浮点表示。不幸的是,Npgsql.EntityFrameworkCore.PostgreSQL项目停止支持PostgreSQL的弃用浮点日期/时间格式,但Teiid似乎仍在使用它。
我还尝试了Npgsql.EntityFrameworkCore.PostgreSQL的旧版本2.2.4,其中包含一个.net Core 2应用程序,该应用程序没有此问题,但无法从Teiid读取和写入双精度值。
AFAIK,从.net Core应用程序访问Teiid数据的唯一工作方法是通过System.Data.ODBC。
Teiid 上是否有任何配置或调整以使用新的整数日期/时间格式进行 PostgreSQL 仿真?
或者如果没有,是否有任何计划更新Teiid PostgreSQL仿真?
或者如果没有,是否有任何计划更新Teiid PostgreSQL仿真?
我认为这里没有完全捕捉到完整的背景。 pg 仿真的当前状态是它仅支持字节、积分、浮点数、双精度和日期类型的二进制格式。 驱动程序应以文本格式发送时间/时间戳。
如果需要额外的二进制格式类型支持,则需要增强。
至于支持什么二进制格式,我们需要匹配我们正在模拟的 pg 版本的期望,目前是 8.2。 如果有一个连接/会话变量来控制预期的格式,我们可以寻求支持它。
上一次支持 npgsql 的努力是在两年前,所以他们的驱动程序现在很可能正在做我们意想不到的事情。 因此,您应该记录有关支持最新和最佳版本的增强功能,该增强功能可以协调任何子任务。