有没有办法使用npgsql将任何类型的数组从c#代码传递到postgres存储过程作为参数。
在这种情况下,anyarray或anyelement是否可以使用。
答案 0 :(得分:0)
“任何类型的数组”(anyarray
)是PostgreSQL pseudo-type,它只是用来编写接受任何区域的函数。它不是实际存在的类型 - 您不能拥有anyarray
列。
因此,为了回答您的问题,您可以使用Npgsql将int,text或任何其他数据类型的数组发送到接受anyarray
的PostgreSQL函数。 Npgsql不了解anyarray
并且不关心它,它只是一个PostgreSQL端的细节。
答案 1 :(得分:-1)
由于Npgsql中的强大数据类型,我无法看到任何良好的方法来实现这一目标,但是如果你想要一个最低限度攻击的hack(就动态SQL / SQL注入而言) ),你可以加入" anyarray"在C#中然后将其拆分为PostgreSQL。
const fakePerformSearch = jest.fn();
const component = Shallow(<Search performSearch={fakePerformSearch}/>);
expect(fakePerformSearch).toHaveBeenCalled();
当然,您需要选择一个最不可能出现在任何值中的分隔符,这些分隔符会发臭。