Ну ... вид ... Если ваш объект временный, вы можете Session.Get<Foo>(id)
другой объект в карту идентификации NH, а затем вручную скопировать его поля в ваш объект. Если ваш объект является постоянным (прикрепленным к сеансу), вы можете Session.Refresh(foo)
повторно извлечь его из БД.
Полагаю, вы можете попробовать сделать Session.Lock на своем временном экземпляре, чтобы заново присоединить его к сеансу, а затем Session.Refresh, чтобы обновить его ... Должно работать ... по крайней мере, теоретически ...