Dam*_*yer 8 c# postgresql npgsql dapper
我正在尝试使用 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);
}
Run Code Online (Sandbox Code Playgroud)
我收到的错误是
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));";
Run Code Online (Sandbox Code Playgroud)
此外,无需在参数映射中指定类型。
dp.Add("jb", stringOfJsonData)
Run Code Online (Sandbox Code Playgroud)
NpgsqlDbType 和 DbType 是两个不同的枚举,您不能简单地将一个枚举转换为另一个枚举......
您必须在它创建和发送的 NpgsqlParameters 上设置 NpgsqlDbType 属性。IIRC 有一种方法可以指定自定义参数。
| 归档时间: |
|
| 查看次数: |
4668 次 |
| 最近记录: |