Кажется, что хотя я уже некоторое время использую NHibernate, я все еще неправильно понимаю некоторые основные концепции этого ORM. Допустим, у меня есть класс с именем «Блог», и я загружаю постоянный экземпляр следующим образом:
using (var tx = Session.BeginTransaction())
{
var myBlog = Session.Get(10);
tx.Commit();
}
Если я сейчас изменю свойство этого экземпляра, NHibernate, кажется, автоматически обнаружит несохраненные изменения и выдаст ОБНОВЛЕНИЕ при фиксации транзакции.
Это приводит к тому, что следующие операторы делают то же самое:
using (var tx = Session.BeginTransaction())
{
var myBlog = Session.Get(10);
myBlog.Title = "Changed title";
tx.Commit();
}
using (var tx = Session.BeginTransaction())
{
var myBlog = Session.Get(10);
myBlog.Title = "Changed title";
Session.Update(myBlog); // why is this necessary?
tx.Commit();
}
Я не вижу никакой разницы с NHProf. Так почему же существует явный метод Update и когда я должен его использовать?