【发布时间】:2011-03-06 16:50:25
【问题描述】:
虽然我使用 NHibernate 已经有一段时间了,但我仍然对这个 ORM 的一些基本概念有误解。假设我有一个名为“Blog”的类,我像这样加载一个持久化实例:
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 有什么不同。那么为什么存在显式更新方法,我应该在什么时候使用它呢?
【问题讨论】:
标签: nhibernate