59 nhibernate
在NHibernate中SaveOrUpdate和Save/Update之间有什么区别.为什么你总是不使用SaveOrUpdate?另外,SaveOrUpdateCopy有什么意义?
ano*_*ous 71
第9章比我能更好地涵盖了所有这些:
http://nhibernate.info/doc/nh/en/index.html
但悬崖说明:
Save()获取没有标识符的新对象并将其附加到会话.对象将是INSERT'd.
Update()获取具有标识符但不在会话中的现有对象并将其附加到会话.对象将是UPDATE'd.
SaveOrUpdate() 查看标识符并确定上述内容.
SaveOrUpdateCopy()特别之处在于你有两个具有相同标识符的对象 - 一个在会话中而另一个不在.如果您尝试并且update不在会话中的那个正常抛出异常(您现在尝试将表示相同持久对象的两个对象附加到会话). SaveOrUpdateCopy()将非会话对象状态复制到会话对象状态.
我不确定你将如何使用NH,但对于很多情况你需要的只是Save().该会话正在完成所有必要的工作,以了解必须更新的内容,简单地Flush()或Commit()完成您需要的所有内容.