![](/img/trans.png)
[英]ts_vector_update_trigger with JSONB column in postgresql / npgsql + EFCore
[英]Inserting data into PostgreSQL jsonb column with Daper.Net and NPGSQL
我正在尝试使用Dapper.Net将JSON数据插入JSONB PostgreSQL列中。
JSONB的NPGSQL文档提供了有关使用NpgsqlDbType.Jsonb
数据类型的特定说明。
使用Dapper,我试图将其添加为自定义参数,但没有成功。
using (var conn = myconnection)
{
var sql = "INSERT INTO mytable (jsonbody) VALUES (@jb);";
dp = new DynamicParameters();
dp.Add("jb", stringOfJsonData, (DbType)NpgsqlDbType.Jsonb);
await conn.ExecuteAsync(sql,dp);
}
我收到的错误是System.NotSupportedException : The parameter type DbType.36 isn't supported by PostgreSQL or Npgsql
关于如何将这两个库一起用于JSONB的任何建议?
谢谢。
看来,将SQL语句更改为以下内容可以修复它。
var sql = "INSERT INTO mytable (jsonbody) VALUES (CAST(@jb AS json));";
另外,也不需要在参数映射中指定类型。
dp.Add("jb", stringOfJsonData)
NpgsqlDbType和DbType是两个不同的枚举,您不能简单地将一个强制转换为另一个枚举...
您必须在其创建和发送的NpgsqlParameters上设置NpgsqlDbType属性。 IIRC有一种指定自定义参数的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.