В ваших файлах сопоставления вы можете указать, какие свойства 'lazyload'. Это означает, что они не будут извлечены при первом запросе, а только при фактическом использовании свойства в коде во время выполнения.
Обычно это делается только для свойств, которые указывают на другие таблицы и не всегда нужны. Извлечение всей строки одной таблицы не должно снижать производительность. Вы можете получить объект через NHibernate, изменить свойство и сохранить его обратно в базу данных. Тебе не нужно беспокоиться ни о чем другом.
Для вопроса о том, как NHibernate знает, что обновлять: проверьте это FAQ .