我们已将Npgsql从2.2.5升级到3.2.7。
我们有一个类型为hstore的数据库列。
在2.2.5中 此列曾用于由XPO valueconverter转换 来自数据库的字符串 到列表<元组<对象,对象>>我们想要在XPO课程中。
3.2.7之前发生了变化 当我们尝试阅读本专栏时, 我们得到一个错误,指出“一个对象应该实现IConvertible”。 但它没有说明,哪个对象应该是IConvertible。 我认为这是目标XPO属性, 类型列表<元组<对象,对象>>
我们尝试将属性更改为IConvertible但没有效果。
有没有人遇到过与hstore类型和3. *升级类似的问题?
答案 0 :(得分:0)
我不知道你的应用程序究竟做了什么(或者XPO是如何工作的),但是Npgsql 3.x将PostgreSQL hstore作为this.head
返回。看起来你的客户端代码(XPO?)可能期望Npgsql返回的值是IConvertible,这不再是这种情况。
答案 1 :(得分:0)
好的,我明白了。从数据库中读取的类型从字符串更改为字典导致XPO中的错误无法正确处理。以防万一其他人遇到这个问题:一个人需要继承PostgreSqlConnectionProvider并重写ReformatReadVaue()方法以省略Dictionary。第二件事是物业的适当价值转换器。 https://www.devexpress.com/Support/Center/Question/Details/T614674/problem-with-hstore-fields-after-upgrading-from-16-2-to-17-2
再次感谢你指点我正确的方向。