如何为 Npgsql 提供自定义数据类型作为参数?

Jer*_*acs 2 c# postgresql npgsql

我想使用 Npgsql 将一组键值对作为参数传递给 PostgreSQL 函数。我定义了以下类型:

drop type if exists key_value_pair
create type key_value_pair as (
    k varchar(250),
    v text
    );
Run Code Online (Sandbox Code Playgroud)

我想写一个像这样的函数:

create or replace function persist_profile(
    _user_id integer,
    _key_value_pairs key_value_pair[]
    ) returns boolean as $$
begin;

...

return true;
end;
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

如何IDictionary<string, string>使用 Npgsql将数据从对象传递到存储过程?这是支持的吗?我在网上找不到参考。

谢谢!

Fra*_*ior 5

杰瑞米!

不幸的是,Npgsql 还不支持自定义数据类型。我打算增加对此的支持。

这意味着使用 Npgsql 添加某种类型的“注册”类型转换器。这样,您的应用程序将为您的自定义类型注册一个转换器,Npgsql 将使用它来回发送数据。

更多细节可以在:Npgsql/src/NpgsqlTypes/NpgsqlTypeConverters.cs on cvs.npgsql.org

请在我们的项目站点中添加一个关于此的功能请求:project.npgsql.org。

提前致谢。