postgresql - 如何在 Npgsql 中使用 hstore 列类型?

标签 postgresql npgsql hstore

我有一个具有以下架构的表:

CREATE TABLE account
(
  id serial primary key,
  login varchar(40) not null,
  password varchar(40) not null,
  data hstore
);

我想使用带有参数的 NpgsqlCommand 对象来检索和存储来 self 的应用程序的帐户数据。我必须为 NpgsqlParameter 使用哪种 DbType?枚举 NpgsqlDbType 没有 hstore 的值。我可以使用 DictionaryHashTable 作为 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)

我传递给数据参数的字符串如下所示:

'key1 => "value1", key2 => "value2"'

最佳答案

谢谢你,弗朗西斯科!我在日志中看到,字符串开头和结尾的单引号(')在传给PostgreSQL的时候都被转义了。当我经过时

key1 => "value1", key2 => "value2"

相反,我可以将数据插入 hstore 列。

关于postgresql - 如何在 Npgsql 中使用 hstore 列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15684091/

相关文章:

ruby-on-rails - 如何从 hstore 列中获取二维散列作为输出?

postgresql - 为什么无法将标签添加到 terraform 模块中

postgresql - RavenDB Sql 复制和 Postgres uuid

entity-framework - 使用 Npgsql 生成 EntityFramework 时出错

postgresql - 从 hstore 中删除 key 时出现意外的字符串结尾

ruby - 如何在 PostgreSQL 中使用 "LIKE"查询 jsonb 列类型?

postgresql - Spring JPA Hibernate 在 postgres 中更新时间戳 wo 时区时出错

php - Propel (PostgreSQL) 语法错误位于或接近 "."

postgresql - 使用postgresql返回max,但是如果存在与max的联系,则返回多个值

c# - 无法检索连接 MVC3 EF 与 Postgres 9.1 的元数据