如何在 C# 中为 postgres 枚举类型添加参数

Bit*_*KFu 4 c# postgresql

您好,目前有一个问题,我想在 postgres 数据库中插入值,其中表包含自定义类型,例如。

CREATE TYPE TestEnum AS ENUM ('Value1','Value2');
Run Code Online (Sandbox Code Playgroud)

当我尝试在 C# 中添加参数时,由于 NpgsqlDbType 错误,我总是收到错误。所以我的问题是 NpgsqlDbType 用于此类自定义类型。

var parameter = new NpgsqlParameter(":p1", NpgsqlDbType.????)
{
    Value = "Value1",
    Direction = ParameterDirection.Input
}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助。因为这个问题我真的快要疯了。

Bit*_*KFu 6

毕竟,我找到了解决问题的解决方案,尽管它不是真正的解决方案。我现在添加 NpgsqlDbType.Varchar 参数并将 CAST(:p1 as "TestEnum") 添加到 SQL

例如

INSERT INTO tableName (Col) VALUES ( CAST(:p1 as "TestEnum") )
Run Code Online (Sandbox Code Playgroud)

它对我有用,尽管由于演员阵容,我不认为这是一个非常好的解决方案。如果将来有人找到更好的解决方案,请给我留言。;)