Nhibernate 3 & LINQ - PullRequest
       1

Nhibernate 3 & LINQ

17 голосов
/ 22 февраля 2011

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

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

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

Ответы [ 2 ]

34 голосов
/ 22 февраля 2011

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

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

Или

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

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

РЕДАКТИРОВАТЬ: Query<T> это метод расширения. Не забудьте добавить using NHibernate.Linq, чтобы иметь возможность его использовать.

3 голосов
/ 22 февраля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...