У меня есть List<Guid>
(также пробовал с простым массивом), который я хотел бы использовать в запросе. Dapper генерирует SQL и правильно подставляет параметры для нумерованных параметров. Однако PG жалуется на синтаксис параметра списка. Никаких дополнительных подробностей не сообщается. Копируя сгенерированный SQL и заменяя числа фактическими значениями (добавляя скобки в параметр списка), запрос работает.
Вот оскорбительное предложение в сгенерированном SQL:
WHERE (
names.tenant = $1
AND scan_results.tenant = $1
AND scan_results.scan IN $2
)
Исходная строка оператора для Dapper выглядит следующим образом:
WHERE (
file_names.tenant = @tenantId
AND scan_results.tenant = @tenantId
AND scan_results.scan IN @validScans
)
Запрос выполняется с использованием con.Query
следующим образом:
con.Query(stmt, new
{
tenantId = tenant.Id,
validScans = tenant.LatestScans // .ToArray()
});
Точная ошибка Postgres:
ERROR: syntax error at or near "$2" at character ...