Я столкнулся с проблемой использования Dapper для запроса поставщика ODBC.В запросе указывается несколько параметров.Один из параметров используется для заполнения оператора WHERE IN.
До сих пор я пытался снабдить запрос: DynamicParameters
, ?
обычными параметрами, ?name?
псевдопозиционными параметрами и некоторыми комбинациямииз них.
SELECT companyId
,projectId
,contractId
,status
FROM certificate
WHERE companyId = ?companyId?
AND projectId = ?projectId?
AND contractId = ?contractId?
AND invoiceId IN ?invoiceIds?
var results = await connection
.QueryAsync<Certificate>(query, new { companyId, projectId, contractId, invoiceIds = new string[] { '1a', '1b', '2a' }});
Ожидаемые результаты - возвращаются несколько строк.Если я жестко закодирую запрос с его параметрами, он работает нормально, поэтому данные, которые я предоставляю, должны возвращать строки.
Вместо этого я получаю исключение со следующим сообщением:
ERROR [07001] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Value has not been specified for parameter 4.
ERROR [07001] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Value has not been specified for parameter 5.