В настоящее время я использую подход, основанный на атрибутах, для управления сеансом nhibernate, что означает, что сеанс открыт в течение действия метода Action, но закрывается, когда управление передается представлению.
Мне кажется, что это хорошая практика, однако я сталкиваюсь с проблемами с лентами с отложенной загрузкой. (Это усложняется тем, что некоторые коллекции загружаются медленно, даже если у них нет .LazyLoad (), установленный в отображении беглости).
На мой взгляд, у меня есть следующие варианты:
- Измените мою стратегию управления ISession и Оставьте сеанс открытым в представлении
- Лучше использовать ViewModels (в настоящее время я не использую их везде).
- Стремление загрузить все коллекции , которые вызывают проблемы (возможно, разбиты на страницы) (свободная проблема не выдерживает)
1 кажется немного неправильным, но может быть «самым простым» решением. Возможно, 2 - правильный путь, но в некоторых случаях ViewModels кажутся немного избыточными, и я не хочу вводить больше классов, чтобы справиться с этой проблемой. 3 кажется немного грязным исправлением.
Что вы думаете?