Да, настольное приложение NHibernate обычно должно использовать несколько сеансов.
В двухуровневом сценарии вы будете использовать сеанс для каждого логического «сеанса взаимодействия», такого как данный «вид» или «экран». Здесь вы можете поддерживать сеанс дольше, чем в веб-приложении, и воспользоваться всеми преимуществами отложенной загрузки, но в какой-то момент вы хотите, чтобы пользователь «сохранил» или «отменил» и перешел к чему-то другому, и это часто является хорошим местом для завершения сеанса.
Использование одного сеанса в приложении может привести к кешированию большого количества материала, а данные на стороне клиента могут устареть или могут возникнуть проблемы с параллелизмом.
Кроме того, как только сеанс встречает исключение, оно перестает быть допустимым, и вам придется отказаться / сбросить все, что вы делали. Если это одна форма, это не имеет большого значения, но если в вашем приложении много объектов, ссылающихся на один и тот же сеанс, все они будут в скомпрометированном состоянии.