Как настроить сеансы и транзакции NHibernate в приложении WPF - PullRequest
14 голосов
/ 12 февраля 2010

Я относительно новичок как в WPF, так и в NHibernate, и пытаюсь создать приложение, которое объединяет эти два, используя шаблон MVVM. Однако я пытаюсь понять, когда и где мое приложение должно открывать и закрывать сеансы и транзакции NHibernate.

Из того, что я прочитал, рекомендуется, чтобы сессии были как можно короче. Поэтому, помимо очевидных соображений безопасности потоков, я предполагаю, что неправильно открывать сеанс на уровне приложения и обмениваться им? С другой стороны, я также понимаю, что очень короткие сессии (в рамках бизнес-методов) приведут к отключению сущностей, а также не позволят мне использовать ленивую загрузку NHibernate. Это нормальный и неизбежный способ разработки приложения WPF / NH?

К сожалению, все хорошие примеры кода (и единственная книга, которую я могу найти по этой теме - NHibernate в действии) ориентированы на приложения ASP.NET, где, по-видимому, передовой опыт достаточно ясен - сеанс и интервал транзакций один запрос Http.

Итак, я был бы признателен за рекомендации от разработчиков WPF, которые помогли бы мне понять управление сессиями в WPF (в идеале указав мне несколько хороших примеров кода).

Большое спасибо,

Тим

1 Ответ

9 голосов
/ 12 февраля 2010

Вот один из лучших примеров настольных приложений NHibernate, который мне известен (я думаю, он был написан с учетом WPF):

Создание настольного приложения с помощью NHibernate

...