Ответ 1
Вот один из лучших примеров приложений для настольных приложений NHibernate, о которых я знаю (я считаю, что это было написано с учетом WPF):
Я относительно новичок и для WPF, и для NHibernate, и для создания приложения, которое объединяет два, используя шаблон MVVM. Тем не менее, я изо всех сил пытаюсь понять, когда и где мое приложение должно открывать и закрывать сеансы и транзакции NHibernate.
Из того, что я прочитал, рекомендуется, чтобы сессии были максимально короткими. Поэтому, помимо очевидных соображений безопасности потоков, я предполагаю, что неправильно открывать сеанс на уровне приложения и делиться им? С другой стороны, я также понимаю, что очень короткие сессии (в рамках бизнес-методов) приведут к отсоединенным объектам, а также не позволят мне использовать ленивую загрузку NHibernate. Является ли это нормальным и неизбежным способом разработки приложения WPF/NH?
К сожалению, все хорошие примеры кода (и единственная книга, которую я могу найти на эту тему - NHibernate in Action), ориентированы на приложения ASP.NET, где наилучшая практика, по-видимому, довольно четкая: сеанс и транзакционный интервал точно один запрос Http.
Итак, я был бы признателен за некоторые рекомендации разработчиков WPF, чтобы помочь мне понять управление сеансами в WPF (идеально указывая на некоторые хорошие образцы кода).
Большое спасибо,
Тим
Вот один из лучших примеров приложений для настольных приложений NHibernate, о которых я знаю (я считаю, что это было написано с учетом WPF):