【问题标题】:Do I need to call SaveOrUpdate() after calling Merge()?调用 Merge() 后是否需要调用 SaveOrUpdate()?
【发布时间】:2011-04-09 01:34:29
【问题描述】:

作为参考,我使用的是 Nhibernate 2.1.2.4000 版本。

我花了将近一个小时左右的时间阅读 Merge() 和 SaveOrUpdate() 之间的区别,但没有任何解释试图回答一个非常简单的问题??

我知道 Merge() 将尽一切努力将分离的对象与缓存或过期的实例同步。

但是,一旦我“合并”了,我就不打算再更改实体了...

我还需要调用 SaveOrUpdate 吗?

干杯

【问题讨论】:

  • 你有没有把两种方式都绑起来并观察结果?
  • 这是一个非常直接的问题。你知道答案吗?
  • 不,但我很好奇你花了一个多小时阅读以找到答案,而你可以通过尝试发现它。
  • 酷一个答案。下次有人遇到这个问题时,他们不需要阅读模棱两可的文档,也不需要跳过基础设施箍,他们可能只需要找到某些方法的预期清晰行为。这就是 SO 在这里的原因。

标签: nhibernate session


【解决方案1】:

检查另一个thread。关键是 Merge() 只是将会话(来自数据库)和分离对象的状态放在一起。然后,您不应再使用分离的对象,而应使用合并的会话中新返回的对象。当然,这个对象必须“保存或更新”才能保持更改,因为它已因 Merge 操作而更改。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 这是一个非常无益的答案。您是否完整阅读过任何一个问题?您是否已完全阅读了另一个答案?请特别注意所选答案中的第二条评论。
    • 抱歉,这对我来说很清楚,但 Petr 复制了相同的 URL 并提供了一些详细信息。
    • 是的,我需要的是澄清和清晰
    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多