postgresql - Npgsql 或您的 PostgreSQL 不支持类型 System.UInt32

标签 postgresql npgsql

使用 Npgsql V3.0.3.0,我正在向一个表中添加一条新记录,该表在数据库中有一个类型为 OID 的列,该列应映射到 UInt32 .Net 类型。

执行插入命令时抛出以下异常“Npgsql 或您的 PostgreSQL 不支持此 .NET 类型:System.UInt32”。

异常中的堆栈跟踪是:

at Npgsql.TypeHandlerRegistry.get_Item(Type type)
at Npgsql.TypeHandlerRegistry.get_Item(Object value)
at Npgsql.NpgsqlParameter.ResolveHandler(TypeHandlerRegistry registry)
at Npgsql.NpgsqlParameter.Bind(TypeHandlerRegistry registry)
at Npgsql.NpgsqlCommand.ValidateAndCreateMessages(CommandBehavior behavior)
at Npgsql.NpgsqlCommand.ExecuteNonQueryInternal()
at Npgsql.NpgsqlCommand.ExecuteNonQuery

此表上 DataReaderGetSchemaTable 方法报告 OID 列的“数据类型”是 UInt32

最佳答案

由于 OID 是一个有点内部/非标准的字段,Npgsql 不会自动将 UInt32 写为 OID;您需要通过将参数的 NpgsqlDbType 字段设置为 Oid 来明确说明您要编写 OID。

关于postgresql - Npgsql 或您的 PostgreSQL 不支持类型 System.UInt32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959377/

相关文章:

java - 如何使用 preparedstatement 获取最后插入的行的 id?

sql - 在PostgreSQL中,我们可以直接比较两个带有不同时区的时间戳吗?

postgresql - 使用 EF Core 和 Npgsql 查询行(复合)值

c# - Npgsql 按名称将参数传递给存储函数

postgresql - 我在哪里可以获得 pldbgapi.sql 以便为 postgresql 安装调试器?

postgresql - PostgreSQL COPY 方法需要什么锁?

entity-framework - 如何解决ProviderManifestToken ="8.3.7"和Npgsql ProviderManifestToken ="8.1.3"冲突?

Entity Framework 中的 Postgresql 表继承

postgresql - 从 npgsql 中的流读取时出现异常

导入期间 Django-Import-Export : Will not autoincrement table id,