C# 如何使NHibernate自动保存脏实体?

C# 如何使NHibernate自动保存脏实体?,c#,nhibernate,C#,Nhibernate,在我的情况下,我需要持久化实体中的每一个更改,因为更改实体属性会物理地移动(或者更确切地说反映了这一点),因此,如果应用程序关闭(在任何时候,通过关闭或终止)并重新启动,它必须在离开的地方重新启动 基本上,我想要的是在每次有东西变脏时刷新会话。到目前为止,我查看了拦截器,但没有找到适合我需要的 当然,我可以通过在每次属性更改时调用Flush()手动完成,但我希望避免在实体中引入持久性代码 有什么提示吗?NHibernate中没有内置这样的东西(FlushMode。总是只在您重新查询时才刷新),但

在我的情况下,我需要持久化实体中的每一个更改,因为更改实体属性会物理地移动(或者更确切地说反映了这一点),因此,如果应用程序关闭(在任何时候,通过关闭或终止)并重新启动,它必须在离开的地方重新启动

基本上,我想要的是在每次有东西变脏时刷新会话。到目前为止,我查看了拦截器,但没有找到适合我需要的

当然,我可以通过在每次属性更改时调用Flush()手动完成,但我希望避免在实体中引入持久性代码


有什么提示吗?

NHibernate中没有内置这样的东西(
FlushMode。总是只在您重新查询时才刷新),但即使有,我也不建议这样做。很可能最终导致数据处于不一致的状态。为了缓解这种情况,请将所有“数据修改”代码包装在事务中,并相应地提交它们。

您需要的不是flush(),而是每次提交。默认情况下,NHibernate使用自动提交,当自动提交时,它也会被刷新