Почему не запускаются никакие запросы при использовании linq после обновления до nhibernate 3.0 - PullRequest
0 голосов
/ 28 декабря 2010

Я использовал nhibernate 2.1 и провайдера linq.у меня был следующий код:

public IQueryable<T> Query<T>()
{
     return Session.Linq<T>();
}

, который позволял бы мне запускать такие запросы:

IEnumerable<Picture> pictures = Query<Picture>();

я только что обновился до nhibernate 3.0 (который, кажется, имеет более зрелую функциональность linq)и этот код

Session.Linq<T>

не компилируется

Я попытался заменить его на:

Session.Query<T>

, который компилировался, но все мои запросы теперь возвращают 0 записей.

Может кто-нибудь помочь объяснить мне путь обновления для этого, и если я делаю что-то не так?на основе этого поста этот синтаксис должен работать, но всегда кажется, что он возвращает 0 записей.

ПРИМЕЧАНИЕ:

Дополнительная информация: Я только что запустил профилировщик nhibernate, и он обнаруживаетсеанс, но он не показывает никаких запросов SQL, которые выполняются.Есть ли какая-то причина, по которой кто-то может подумать, что этот запрос не запустится?

Ответы [ 2 ]

1 голос
/ 30 декабря 2010

Я понял это. Проблема заключалась в событии после сборки, на котором выполнялся сценарий для копирования старой версии nhibernate обратно в каталог bin

0 голосов
/ 28 декабря 2010

Я не ожидал бы IEnumerable pictures = Session.Query (); выполнить некоторый sql, потому что перечислимый объявлен, но не выполнен. IEnumerable pictures = Session.Query (). ToList (); выполнит sql.

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