0

目前我正在研究一个由其他人编写的项目,并且众所周知 NHibernate 部分可能没有很好地实现。我在实习期间被要求改进这一点,但我对 NHibernate 也很陌生。我遇到了一些代码部分,在选择后有一个 Flush,在我看来这完全没用,对吗(问题 1)?我几乎阅读了完整的 NHibernate 文档,但我不确定我是否理解所有内容。

我应该在选择之前刷新(问题 2)吗?我的想法是,当我在刷新后选择时,数据将是最新的。

(目前该程序根本不使用任何交易 - 我看到那里有很大的改进空间)

4

1 回答 1

1

NH官方文件说:

9.7.1。刷新会话

如果您碰巧使用的是 ITransaction API,则无需担心这一步。它会在事务提交时隐式执行。否则,您应该调用 ISession.Flush() 以确保所有更改都与数据库同步。

应该始终使用 transactions,即使是读取。

如果您不使用事务,则应在写入后使用 Flush。
阅读后对 Flush 没有任何意义。
看看这两个 答案,一切都得到了很好的解释。

于 2012-07-24T10:52:27.143 回答