Как сделать запрос ODBC с Dapper с несколькими параметрами, включая ГДЕ IN? - PullRequest
0 голосов
/ 22 мая 2019

Я столкнулся с проблемой использования 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.
...