使用 Postgres 的 Dapper WHERE IN 字符串语句

Dapper WHERE IN string statement with Postgres

我看过

但我不确定 Dapper 是否支持 Postgres 的 WHERE IN ("String1", "String2") 语法。这受支持吗?我试着深入研究代码,但我现在真的没有时间。到目前为止,我只看到了整数的例子。

示例:

_connection.QueryAsync<Lookup>("select * from lookup where lower(discriminator) in @types", new { types = new[] {"Prefix", "Suffix"} });

结果: PostgresException {"42601: \"$1\"" 处或附近的语法错误}

声明:

{select * from lookup where lower(discriminator) in }

如果我没记错的话 IN Postgres 中的运算符不支持数组作为参数。而不是 IN 尝试 ANY 运算符,如下所示:

var query = "SELECT * FROM lookup WHERE LOWER(discriminator) = ANY(@types)";

_connection.QueryAsync<Lookup>(query, new { types = new[] {"Prefix", "Suffix"} });