2010-09-13 2 views

ответ

9

Отдельные критерии могут быть построены без ссылки на ISession. Вы можете позже принять эти критерии и применить его к ISession, чтобы получить исполняемый файл ICriteria.

Используйте ICriteria, когда у вас есть сеанс.

Используйте DetachedCriteria, если вы не уверены в какой сессии будет выполнен запрос.

Обратите внимание, что DetachedCriteria делает не реализации ICriteria - они не являются взаимозаменяемыми. Вы всегда должны позвонить detachedCriteria.GetExecutableCriteria(session), чтобы получить экземпляр ICriteria.

+0

Спасибо за ответ, я обновил свой вопрос, вы можете проверить его? – kilonet

+0

@kilonet Да; кажется странным. Если вы установите контрольную точку на втором и проверите значение локальной переменной 'category', что это такое? – Jay

+0

yep, это была проблема с именами переменных – kilonet