NHibernate会话。刷新&;驱逐vs清除

NHibernate会话。刷新&;驱逐vs清除,nhibernate,session,Nhibernate,Session,在一个测试中,我希望持久化一个对象,然后通过从db(而不是会话)获取它来证明它是持久化的,我注意到以下两个方面没有区别: // save it session.Clear() // fetch it 或 我身上懒惰的程序员倾向于一行多于两行。有什么原因我不喜欢这两行吗?session.Clear实际上取消了所有挂起的保存/更新等 如果没有,那是因为您使用的是标识,所以实体在不刷新的情况下被持久化。我使用的是标识-这是支持刷新和逐出的一个很好的理由!干杯,会话。刷新和会话。清除与刷新和逐出的效果

在一个测试中,我希望持久化一个对象,然后通过从db(而不是会话)获取它来证明它是持久化的,我注意到以下两个方面没有区别:

// save it
session.Clear()
// fetch it


我身上懒惰的程序员倾向于一行多于两行。有什么原因我不喜欢这两行吗?

session.Clear实际上取消了所有挂起的保存/更新等


如果没有,那是因为您使用的是标识,所以实体在不刷新的情况下被持久化。

我使用的是标识-这是支持刷新和逐出的一个很好的理由!干杯,会话。刷新和会话。清除与刷新和逐出的效果相同吗?“我相信这会更好,因为除非有这样的定义,“驱逐”不会层叠而来。”丽塔。是的,我认为你是对的。要了解迭戈所说的话,关键之一是Clear会取消挂起的保存。这些天我通常做的是把所有的东西都包在一个tranaction里;所以Save在一个单独的tx中,在调用Session.Clear()之前通过tx.Commit提交,因此没有挂起。嗯
// save it
session.Flush()
session.Evict(_instance)
// fetch it