目前我正在开发一个由其他人编程的项目,并且已知NHibernate部分可能没有很好地实现。我在实习期间被要求改进,但我对NHibernate也很新。 我遇到了一些代码部分,在选择后有一个Flush,在我看来是完全没用的,我是对的(问题1)? 我读了几乎完整的NHibernate文档,但我不确定我是否理解所有内容。
我应该在选择之前刷新(问题2)吗?我的想法是,当我在冲洗后选择时,数据会是最新的。
(目前该计划根本不使用任何交易 - 我认为那里有很大的改进空间)
答案 0 :(得分:1)
NH官员documents说:
<强> 9.7.1。刷新会话
如果您正好使用ITransaction API,则不需要 担心这一步。它将在隐式执行时执行 交易已提交。否则你应该调用ISession.Flush() 确保所有更改都与数据库同步。
你should always use transactions,即使是阅读。
如果您没有使用交易,则应在写入后使用Flush 阅读后,Flush真的没有感觉到 看看这些two answers,其中一切都得到了很好的解释。