gpt4 book ai didi

nhibernate - SaveOrUpdate 与 NHibernate 中的更新和保存

转载 作者:行者123 更新时间:2023-12-03 05:44:34 24 4
gpt4 key购买 nike

NHibernate 中的 SaveOrUpdate 和 Save/Update 有什么区别。为什么不总是使用 SaveOrUpdate 呢?另外,SaveOrUpdateCopy 有什么意义?

最佳答案

第 9 章比我更好地涵盖了所有这些内容:

http://nhibernate.info/doc/nh/en/index.html

但是悬崖笔记:

Save() 获取一个没有标识符的新对象并将其附加到 session 。该对象将被INSERT'd。

Update() 获取具有标识符但不在 session 中的现有对象,并将其附加到 session 。该对象将被UPDATE'd。

SaveOrUpdate() 查看标识符并决定上面的内容。

SaveOrUpdateCopy() 的特殊之处在于,您有两个具有相同标识符的对象 - 一个在 session 中,一个不在 session 中。如果您尝试更新不在 session 中的对象,通常会引发异常(您现在正尝试将表示同一持久对象的两个对象附​​加到 session 中)。 SaveOrUpdateCopy() 将非 session 对象状态复制到 session 对象状态。

我不确定您将如何使用 NH,但在很多情况下您所需要的只是 Save()。 session 正在执行所有必要的工作,以了解需要更新的内容,并且只需 Flush()Commit() 即可完成您所需的一切。

关于nhibernate - SaveOrUpdate 与 NHibernate 中的更新和保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1150854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com