Nhibernate NpgSql上的数组绑定实现

Nhibernate NpgSql上的数组绑定实现,nhibernate,npgsql,postgresql-9.4,Nhibernate,Npgsql,Postgresql 9.4,我正在通过.Net与Nhibernate一起开发Npgsql,用于PostgreSQL查询生成和从oracle迁移 我对通过NpgSql的“数组绑定”感到困惑 我发现了一些讨论,似乎解决方案是标准批量插入 下面是示例查询 INSERT INTO <table_name>(C1,C2) VALUES (1, :V01);, V01: "System.String[]" 插入(C1,C2)值(1,:V01);,V01:“系统字符串[]” 在oracle odp.net上,似乎有一些大

我正在通过.Net与Nhibernate一起开发Npgsql,用于PostgreSQL查询生成和从oracle迁移

我对通过NpgSql的“数组绑定”感到困惑 我发现了一些讨论,似乎解决方案是标准批量插入

下面是示例查询

INSERT INTO <table_name>(C1,C2) VALUES (1, :V01);, V01: "System.String[]"
插入(C1,C2)值(1,:V01);,V01:“系统字符串[]”
在oracle odp.net上,似乎有一些大容量插入()的数组绑定实现

在Npgsql中,是否有关于数组绑定的实现,或者在路线图上? (注意:Npgsql版本是3.2.7,Nhibernate版本是4.0.4.4000,最后是Postgresql版本9.4)

因为Postgresql有,Npgsql允许您将数组作为单个参数值传递(即,就像您可以有一个字符串列一样,您可以有一个数组列)

但是,没有从数组中自动执行大容量插入的方法—您必须自己编写循环。最有效的方法是使用。否则,您可以在同一DbCommand(用分号分隔)内串联多个INSERT语句,尽管这样效率会降低

我认为从数组进行大容量插入没有多大意义,因为PostgreSQL在协议级别不支持类似的操作。因此,如果我们这样做,Npgsql将只是实现循环,而不是用户(纯糖),一般来说,我们会尽量保持低级别,只公开PostgreSQL功能