但我不确定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 $1}
如果我没错,Postgres中的IN
运算符将不支持数组作为参数。而不是IN
尝试ANY
象下面这样操作:
var query = "SELECT * FROM lookup WHERE LOWER(discriminator) = ANY(@types)";
_connection.QueryAsync<Lookup>(query, new { types = new[] {"Prefix", "Suffix"} });