Как передать параметр оператору IN в NHibernate? - PullRequest
5 голосов
/ 03 мая 2010

HI

Я пытаюсь передать длинный массив для именованного запроса (нативный sql) для использования в IN STATEMENT: Как это:

(...) ГДЕ Идентификатор IN (: pIdes)

Я пытался передать свои иды как можно дольше []:

 ctx.GetNamedQuery("NamedQueryName")                                          
                   .SetParameter<long[]>("pIdes", Identificators)
                   .List<EmpreendimentoInputReport>();

и в виде строки

 ctx.GetNamedQuery("NamedQueryName")                                          
                   .SetParameter<string>("pIdes", Identificators)
                   .List<EmpreendimentoInputReport>();

Когда параметр является строкой, ничего не возвращаемой, тогда как long [] возвращает эту оракульную ошибку:

"Oracle.DataAccess.Client.OracleException: ORA-00932: несоответствие типов данных: esperava NUMBER obteve BINARY"

Кто-нибудь может мне помочь?

1 Ответ

10 голосов
/ 03 мая 2010

Используйте SetParameterList вместо SetParameter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...