使用 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"} });
我看过
但我不确定 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"} });