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

时间:2014-04-04 07:59:08

标签: c# nhibernate

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

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

当然,我可以通过在每次更改属性时调用Flush()来手动执行此操作,但我希望避免在我的实体中引入持久性代码。

任何提示?

1 个答案:

答案 0 :(得分:1)

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