2011-01-22 4 views
10

J'utilise les dernières versions de NHibernate mais je ne peux pas travailler avec linq. J'ai déjà ajouté using NHibernate.Linq, donc ce n'est pas le problème.NHibernate.ISession ne contient pas de définition pour Linq

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

On dirait qu'il n'y a pas de méthode extention Linq() pour ISession, malgré le fait thath NHibernate.Linq est dans la liste des utilisations. Une idée?

Merci

Répondre

19

session.Linq<T>() est le fournisseur de contrib pour NHibernate 2.x

session.Query<T>() est le fournisseur intégré dans NHibernate 3.x

+0

Merci Mauricio, pourriez-vous me dire que l'on est meilleur? En mieux, je veux dire plus stable, riche en fonctionnalités et de meilleures performances. Merci :) – Davita

+1

@Davita: si vous utilisez NHibernate 3.x, utilisez 'session.Query ()'. Si vous utilisez NHibernate 2.x, utilisez le fournisseur contrib et 'session.Linq ()'. Ce n'est pas vraiment un choix. –

+0

Je comprends. Merci beaucoup :-) – Davita

Questions connexes