Это поведение по умолчанию, когда FlushMode сеанса имеет значение Auto или Commit.
В этих случаях вызов транзакции .Commit () сбрасывает сеанс и обновляет ВСЕ постоянные объекты
Так что, если вы удалите вызовы Session.Update, это не будет иметь никакого значения
Могу ли я сделать обновление NHibernate одно за другим?
Да. используйте FlushMode.Never или отложите принятие сеанса, если это возможно. Я думаю, вам не нужно использовать Evict для этого случая