Я не уверен, что понимаю ваш вопрос, но вот что я думаю:
Подумайте, «помещая объекты в сессию» вместо «получения и хранения данных». NH сохранит все новые и измененные объекты в сеансе без специального обращения к нему.
Рассмотрим следующие сценарии:
Изменение данных:
- Получить данные из базы данных по любому запросу. Объекты сейчас находятся в сеансе NH
- Изменить сущности, просто изменив значения свойств
- Передать транзакцию. Изменения сбрасываются и сохраняются в базе данных.
Создать новый объект:
- Вызов конструктора для создания нового объекта
- Сохраните его в базе данных, вызвав «Сохранить». Сейчас на сессии.
- Вы можете изменить объект после сохранения
- Зафиксируйте изменения. Последнее состояние будет сохранено в базе данных.
Если вы работаете с отсоединенными сущностями, вам также понадобится Update или SaveOrUpdate для помещения отсоединенных сущностей в сеанс.
Конечно, вы можете настроить NH так, чтобы он вел себя по-другому. Но это лучше всего работает, если вы следуете этому поведению по умолчанию.