我们正在构建一个使用 NHibernate 作为 ORM 层的大型应用程序。我们已尝试应用尽可能多的最佳实践,其中设置FlushMode
为Never
. 但是,这给我们带来了痛苦,例如以下场景:
有一个带有结束日期列的表。从此表中,我们删除最后一条(按结束日期)记录:
- 记录被删除;
- 删除后,我们对最后一条记录(按结束日期)进行(存储库)查询;
- 最后一条记录已更新,因为它是新的活动记录。
这是一个非常简单的场景,其中有很多。这里的问题是,当我们进行查询时,我们将删除的记录取回,这当然是不正确的。这大致意味着我们不能在业务逻辑中进行可能触及被插入或删除的实体的查询,因为它的相应。还没有或仍然存在。
我该如何处理这种情况?有没有办法在不恢复FlushMode
设置的情况下解决这个问题,还是我应该一起放弃FlushMode
设置?