Подтвердить что ты не робот

Nhibernate 3 & LINQ

Я конвертирую код из Nhibernate 2.x в 3.0. Раньше я использовал плагин LINQ, чтобы получить поддержку LINQ. Я понял, что в версии 3.0 он включился в качестве функции первого класса. Итак, мой вопрос: я имел обыкновение иметь это:

return new List<T>(session.Linq<T>().Where(where));

Как это выглядит с новым синтаксисом? я прошел через nocs 3 документа и учебник и ничего не видел о материале linq, поэтому я не смог найти пример для шаблона после.

4b9b3361

Ответ 1

В NHibernate 3 с Linq вы делаете это:

from u in session.Query<User>()
where u.Username == username
select u

или

session.Query<User>().Where(u => u.Username == username)

Не уверен, что это то, что вы ищете.

EDIT: Query<T> - метод расширения. Не забудьте добавить using NHibernate.Linq, чтобы использовать его.

Ответ 2

Нет нового синтаксиса. Linq все еще linq. Метод Linq в старом провайдере называется Query в новом.

Вместо нового списка (перечисляемого) вы можете использовать enumerable.ToList(), чтобы предотвратить загрузку каждого объекта в списке с помощью отдельного SQL-запроса.