Hi当前有个问题,我想在postgres数据库中插入值,其中的表包含像这样的自定义类型。

CREATE TYPE TestEnum AS ENUM ('Value1','Value2');

当我试图在C中添加参数时,总是会因为NpgsqlDbType错误而得到一个错误。所以我的问题是,对于这种自定义类型,应该使用什么NpgsqlDbType。
var parameter = new NpgsqlParameter(":p1", NpgsqlDbType.????)
{
    Value = "Value1",
    Direction = ParameterDirection.Input
}

谢谢你的帮助。因为这个问题我真的要发疯了。

最佳答案

毕竟,我找到了一个解决问题的办法,尽管这不是真正的解决办法。
我现在添加一个NpgsqlDbType.Varchar参数,并将一个CAST(:p1作为“TestEnum”)添加到SQL
例如

INSERT INTO tableName (Col) VALUES ( CAST(:p1 as "TestEnum") )

这对我来说很管用,不过我不认为这是一个很好的解决方案,因为演员。
如果将来有人能找到更好的解决办法,请给我打个电话。;)

10-06 15:23