(примечание: к счастью, я никогда не имел дело с EF; мой ответ касается только NH)
Я думаю, что ваше первоначальное предположение неверно:
изменение объекта автоматически
означает, что он будет сохранен
это не правда; чтобы сохранить изменения, которые вы внесли, вам необходимо:
- вызовите Session.Flush () самостоятельно
- установить режим сброса сессии на AutoCommit (настоятельно не рекомендуется)
- использовать транзакцию IT и зафиксировать ее (безусловно, лучший подход).
Если вы не сделаете ничего из вышеперечисленного, ваши изменения не будут сохранены.
Лично я чувствую, что NH дает мне полный контроль над тем, что входит в мою базу данных.
здесь ' хорошая статья.