我编写了一个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仿真?
或者,如果没有,是否有计划更新Teiid PostgreSQL仿真?
我认为这里没有完整描述上下文。 pg仿真的当前状态是它仅支持bytea,integrated,float,double和date类型的二进制格式。驱动程序应该以文本格式发送时间/时间戳。
如果需要其他二进制格式类型的支持,则需要增强。
关于要支持的二进制格式,我们需要匹配我们正在仿真的pg版本的期望值,当前值为8.2。如果有一个连接/会话变量来控制期望的格式,我们可以寻求支持。
支持npgsql的最后一次努力是在两年前,因此他们的驱动程序现在可能正在做我们没有想到的事情。因此,您应该记录有关支持最新和最新版本的增强功能,该功能可以协调任何子任务。