В чем разница между DetachedCriteria и ICriteria

Эти классы имеют некоторые похожие методы, но, кажется, работают немного по-разному.

В чем разница между ними и когда я должен использовать каждый из них?


person kilonet    schedule 13.09.2010    source источник


Ответы (1)


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

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

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

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

person Jay    schedule 13.09.2010
comment
@килонет Да; кажется странным. Если вы установите точку останова на втором и проверите значение локальной переменной category, что это будет? - person Jay; 14.09.2010
comment
да, это была проблема с именами переменных - person kilonet; 14.09.2010
comment
DetachedCriteria довольно крут, если вы работаете с общим уровнем доступа к данным. - person Henrik Bøgelund Lavstsen; 27.02.2013