2011-01-22 5 views
10

Я использую последние сборки NHibernate, но не могу работать с linq. Я уже добавил using NHibernate.Linq, так что это не проблема.NHibernate.ISession не содержит определения для Linq

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

Похоже, что нет никакого метода Linq продления() для ISession, несмотря на то, Тат NHibernate.Linq находится в списке целей. Есть идеи?

Благодаря

ответ

19

session.Linq<T>() для провайдера CONTRIB для NHibernate 2.x

session.Query<T>() для встроенного провайдера в NHibernate 3.x

+0

Спасибо Маурисио, могли бы вы сказать мне, какой из них является лучше? В лучшем случае я имею в виду более стабильную, многофункциональную и лучшую производительность. Спасибо :) – Davita

+1

@Davita: если вы используете NHibernate 3.x, используйте 'session.Query ()'. Если вы используете NHibernate 2.x, используйте поставщика contrib и 'session.Linq ()'. Это не выбор. –

+0

Я понимаю. Большое спасибо :-) – Davita

Смежные вопросы