Почему мне нужно вызывать ISession.Flush после ISession.Delete - PullRequest
1 голос
/ 17 декабря 2010

Почему NHibernate требует от меня сброса сеанса после удаления? После обновления или сохранения не требуется очистка.

1 Ответ

4 голосов
/ 17 декабря 2010

Необходимо обновить после обновления или сохранения в дополнение к удалению.Параметр FlushMode вашего ISession или другой фактор (например, сгенерированные базой данных идентификаторы) заставляют его автоматически сбрасываться. Документация описывает условия, при которых сеанс сбрасывается.

По моему мнению, рекомендуется установить для FlushMode значение Commit и использовать транзакции для всех операций базы данных, включая операции чтения (этонеобходим для кэширования 2-го уровня).

...