如何使 NHibernate 自动保存脏实体
本文关键字:保存 实体 何使 NHibernate | 更新日期: 2023-09-27 17:56:39
我遇到一种情况,我需要保留实体中的每个更改,因为更改实体属性会物理移动事物(或者更确切地说反映了这一点),因此如果应用程序关闭(随时,通过关闭或终止)并重新启动,它必须从离开的地方重新启动。
基本上,我想要的是每次变脏时冲洗会话。到目前为止,我查看了拦截器,但没有找到适合我需求的东西。
当然,我可以通过在每次属性更改时调用 Flush() 来手动执行此操作,但我希望避免将持久性代码引入我的实体。
有什么提示吗?
NHibernate中没有内置这样的东西(FlushMode.Always
仅在您重新查询时刷新),但即使有,我也不建议这样做。您很可能最终导致数据处于不一致状态。为了缓解这种情况,请将所有"数据修改"代码包装在事务中并相应地提交它们。