postgres npgsql 如何使整数数组正常工作

postgres npgsql How can I make integer array work correctly

我有一个简单的 sql 查询,它可以接受多个 Integer 类型的数组,如果我这样做它就可以工作 r.userid in(36,37,38 ) 我遗漏了一些代码,因为一切正常,除非我尝试将其作为 List 传递。我是 npgsql 的新手,所以我确信我遗漏了一些东西,任何建议都很好。

这个有效

select s.post,s.fullname,s.location,s.streetplace,s.streetplace_id,s.profile_id as 
    ,s.link,s.title FROM streams s JOIN reshares r on r.userid in(36,37,38)

但是如果我这样做

这不行

var newList = new List<int>{ 36,37,38 };

   select s.post,s.fullname,s.location,s.streetplace,s.streetplace_id,s.profile_id as 
        ,s.link,s.title FROM streams s JOIN reshares r on r.userid in(@following)
  cmd.Parameters.AddWithValue("@following", newList);

我收到错误

42883:运算符不存在:integer = integer[] at Npgsql.NpgsqlConnector.

没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。

在 PostgreSQL 中,IN 运算符用于行,而不是数组;要使用数组完成相同的操作,您可以使用 ANY 结构:WHERE x = ANY(@array).

查阅完整的 PostgreSQL 文档 here