В NHibernate создание фабрики сеансов очень дорого (поэтому вы захотите кэшировать фабрику сеансов после ее создания, вероятно, на HttpApplication
), но создание сеансов очень дешево. Другими словами, если он обеспечивает чистоту вашего кода, создание нескольких сеансов не обязательно является плохой вещью. Я думаю, что в документации NH это сказано лучше:
ISessionFactory является
дорогой в создании, потокобезопасный объект
предназначен для общего пользования всеми
темы приложений. ISession - это
недорогой, не поточечный объект
это должно быть использовано один раз, для одного
бизнес-процесс, а затем отбрасывается.
Таким образом, использование шаблона UoW, вероятно, не является более эффективным из-за дополнительных накладных расходов, но это хорошая практика, и накладные расходы, вероятно, не причинят вам вреда. Преждевременная оптимизация и все такое.