我的情况是我需要在我的实体中保留每一个更改,因为更改实体属性会物理移动(或者更确切地说是反映),因此如果应用程序关闭(在任何时候,通过关闭或终止)并再次启动,它必须从它离开的地方重新开始。
基本上我想要的是每次有东西变脏时刷新会话。到目前为止,我看了拦截器,但没有找到适合我需要的东西。
当然,我可以通过在每次更改属性时调用Flush()来手动执行此操作,但我希望避免在我的实体中引入持久性代码。
任何提示?
答案 0 :(得分:1)
NHibernate内置了这样的东西(FlushMode.Always
仅在你重新查询时才刷新),但即使有,我也不建议这样做。您最终可能会将数据置于不一致状态。为了缓解这种情况,请将所有“数据修改”代码包装在事务中并相应地提交它们。