Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How pass a parameter to IN Operator in NHibernate?

HI,

I'm Trying, pass a long array for a named query (native sql) for to use in a IN STATEMENT: Like this:

(...) WHERE Identificator IN (:pIdes)

I tried pass my ides as long[]:

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

and as a string

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

When the parameter is a string return nothing, whem is a long[] return this oracle error:

"Oracle.DataAccess.Client.OracleException: ORA-00932: tipos de dados inconsistentes: esperava NUMBER obteve BINARY"

Someone can help me?

like image 801
Flavio Avatar asked May 03 '10 13:05

Flavio


1 Answers

Use SetParameterList instead of SetParameter.

like image 162
Diego Mijelshon Avatar answered Nov 01 '22 23:11

Diego Mijelshon