Im tratando de devolver una lista SimpleQuery que consulta una sola tabla y utiliza IN. puedo conseguir que esto funcione utilizandoNhibernate HQL donde consulta IN
return new List<Jobs>(
ActiveRecordMediator<Jobs>.FindAll(Expression.In("ServiceId", ids))
);
Sin embargo, esto es muy muy muy lento. Entonces, me gustaría hacer algo como esto
SimpleQuery<Job> query =
new SimpleQuery<Job>(@"from Job as j where ? in (j.ServiceId)", ids);
return new List<Job>(query.Execute());
Sin embargo, no puedo hacer que SimpleQuery funcione. No puedo encontrar ninguna documentación que lo cubra y esperaba que alguien fuera pudiera ayudar.
Gracias
Gracias por la respuesta. edité mi consulta basada en su respuesta SimpleQuery consulta = nueva SimpleQuery ( @ "de Job como j, donde j.SecondName = (: nombre) y en ServiceId (: serviceIds)"); query.SetParameter ("serviceIds", ids); query.SetParameter ("nombre", nombre); return new List (query.Execute()); El único problema ahora es la matriz int de ids que estoy ingresando. El campo en la base de datos es de tipo int, si uso IN en cualquiera de los campos de cadena funciona bien y si paso un único valor int funciona . ¿Cómo puedo pasar una matriz? Gracias –
Gilbert
Opps, llame al método incorrecto Pruebe usar q.SetParameterList en su lugar – Noel
También esto podría ser útil para usted también http://www.nhforge.org/doc/nh/en/index.html#manipulatingdata-queryinterface – Noel