問題
當使用dapper呼叫postgresql時後,需要在in裡面查詢一批陣列會遇到下方的錯誤訊息
var Ids = [1,2,3,4];
DynamicParameters parameters = new();
parameters.Add("Ids", Ids);
var strSQL = "";
strSQL +="select * from Users where id in @Ids;"
await dapper.QueryAsync(strSQL,parameters);
42601: syntax error at or near “$1”\r\n\r\nPOSITION: 81
解法
改語法為any就可以解決這個問題。
var Ids = [1,2,3,4];
DynamicParameters parameters = new();
parameters.Add("Ids", Ids);
var strSQL = "";
strSQL +="select * from Users where id = any(@Ids);"
await dapper.QueryAsync(strSQL,parameters);