将 string[][] 与 npgsql 一起使用

Use string[][] with ngpsql

不支持?尝试使用命令参数设置为插入数据时出现异常:

var parameter = ((IDbDataParameter)cmd.Parameters[index]);
var list = (string[][])value;
parameter.Value = list;

有留言

System.NotSupportedException: This .NET type is not supported in Npgsql or your PostgreSQL: System.String[][]

我正在使用 PostgreSQL 9.4 并创建了一个类型为 text[][] 的列。由于 text[] 映射到 string[] 没有任何问题,我看不出二维数组不起作用的原因。

Postgres 中没有数据类型 text[][]。文档允许指示多个数组维度的语法变体,但在内部,所有这些都映射到适用于任意数量维度的相同(且唯一)数组类型:text[]。在您的 .net 声明中尝试 string[]

你不必相信我的话,自己测试一下:

SELECT pg_typeof(NULL::text[][])            AS type1
     , pg_typeof('{a,b}'::text[][])         AS type2
     , pg_typeof('{{{a,b},{c,d}}, {{a,b},{c,d}}}'::text[][][][][]) AS type3;


 type1  | type2  | type3
--------+--------+--------
 text[] | text[] | text[]

相关:

  • mapping postgresql text[][] type and Java type