何我用npgsql 3.0.0读取postgresql citext字段?

时间:2015-08-10 13:48:15

标签: postgresql npgsql

假设我在postgresql中有一个名为“exampletable”的表,其中包含100个citext类型字段,我们称之为“field1”,“field2”等...如何使用npgsql读取这些字段?理想情况下,我想使用以下sql:

select * from exampletable

但是当我使用npgsql 3.0.0执行sql时,我得到以下NotSupportedException

  

“字段field1具有Npgsql当前未知的类型(OID 16466)。您可以通过将其标记为未知来将其检索为字符串,请参阅常见问题解答......”

为了解决这个问题,我可以手动将所有字段转换为sql查询中的文本,如下所示:

select field1::text, field2::text, ... field99::text, field100::text from exampletable

正如您所看到的,这是非常冗长和繁琐的。我是否必须在查询中手动将所有字段转换为文本,或者是否有一些更简单的方法来配置npgsql以允许传输中的citext类型?我如何处理postgresql中的其他非标准扩展类型?

任何帮助将不胜感激。

加分问题:我已尝试查找异常消息中引用的常见问题解答,但我找不到任何内容。你知道邮件引用的页面吗?

1 个答案:

答案 0 :(得分:0)

道歉,这种类型必须穿过裂缝。我opened an issue for it并将为3.0.1实施。

与此同时,您可以在关闭时手动投射,也可以将NpgsqlCommand的AllResultTypesAreUnknown设置为true。这将使Npgsql在文本中请求所有结果集的列,然后您可以访问这些列。常见问题解答仍在进行中,尚未在线,也为此道歉。