2011-01-22 27 views
10

Estoy utilizando las compilaciones más recientes de NHibernate pero no puedo trabajar con linq. Ya agregué using NHibernate.Linq, así que ese no es el problema.NHibernate.ISession no contiene una definición para Linq

using (ISession session = NHibernateHelper.OpenSession()) 
{ 
    var sss = session.Linq<Category>().ToArray(); <-- Error mentioned above. 
} 

Parece que no existe un método extensión LINQ() para ISession, a pesar del hecho de Thath NHibernate.Linq está en la lista de usos. ¿Alguna idea?

Gracias

Respuesta

19

session.Linq<T>() es para el proveedor contrib para NHibernate 2.x

session.Query<T>() es para el proveedor integrado de NHibernate en 3.x

+0

Gracias Mauricio, ¿me podría decir cuál es el ¿mejor? En mejor, me refiero a un rendimiento más estable, rico en funciones y mejor rendimiento. Gracias :) – Davita

+1

@Davita: si está utilizando NHibernate 3.x, use 'session.Query ()'. Si está utilizando NHibernate 2.x, use el proveedor contrib y 'session.Linq ()'. No es realmente una elección. –

+0

Lo entiendo. Muchas gracias :-) – Davita

Cuestiones relacionadas