为什么我需要在Session.Delete之后调用Session.Flush

时间:2010-12-17 13:49:41

标签: nhibernate hibernate fluent-nhibernate nhibernate-mapping

为什么NHibernate要求我在删除后刷新会话?更新或保存后不需要刷新。

1 个答案:

答案 0 :(得分:4)

除了删除之外,还需要在更新或保存后进行刷新。您的ISession的FlushMode设置或其他因素(例如数据库生成的标识符)导致它自动刷新。 The documentation描述了导致会话被刷新的条件。

在我看来,最佳做法是将FlushMode设置为Commit并对所有数据库操作使用事务,包括读取(这是第二级缓存所需)。