我有一个具有以下架构的表:
CREATE TABLE account
(
id serial primary key,
login varchar(40) not null,
password varchar(40) not null,
data hstore
);
我想使用NpgsqlCommand
带参数的对象从我的应用程序中检索和存储帐户数据。我必须使用哪个 DbType NpgsqlParameter
?枚举NpgsqlDbType
没有 hstore 的值。我可以使用Dictionary
或HashTable
作为NpgsqlParameter
对象的值吗?
当我使用 JSON 列时,我可以创建类型参数NpgsqlDbType.Text
,使用 JSON.Net 之类的库将对象序列化为 JSON 字符串并发送如下 SQL 语句:
INSERT INTO account (login, password, data) VALUES (:login, :password, :data::json)
不幸的是,这不适用于 hstore 列。尝试执行此操作时出现语法错误:
INSERT INTO account (login, password, data) VALUES (:login, :password, :data::hstore)
我传递给 data 参数的字符串如下所示:
'key1 => "value1", key2 => "value2"'