NHibernate - 脏的ISession没有更新

时间:2010-07-14 09:51:45

标签: nhibernate

单击保存按钮时,将运行以下代码[PersistenceSession是返回ISession实例的属性]:

_storedWill = PersistenceSession.Load<StoredWill>(_storedWillId);
_storedWill.WillReference = txtWillReference.Text;
_storedWill.IntroducerReference = txtIntroducerReference.Text;
//A stack of other properties of the _storedWill object assigned
PersistenceSession.SaveOrUpdate(_storedWill);

在最后一行设置的断点显示PersistenceSession.IsDirty()为真。

但是,不会生成更新SQL。谁能想到为什么?

由于

大卫

1 个答案:

答案 0 :(得分:1)

您需要Flush会话才能将更新发送到数据库。 SaveOrUpdate不会向数据库发送任何内容,除非您持久保存新创建的实体,其ID值是数据库生成的。由于您只是在更新,所以这样做可以确保_storedWill实体与ISession属性返回的PersistenceSession相关联。