SaveOrUpdate Vs更新和保存在NHibernate中
NHibernate中的SaveOrUpdate和Save / Update有什么区别。 为什么你只是总是使用SaveOrUpdate? 另外,SaveOrUpdateCopy有什么意义?
第9章比我更能涵盖所有这些:
http://nhibernate.info/doc/nh/en/index.html
但悬崖笔记:
Save()
接受一个没有标识符的新对象并将其附加到会话中。 该对象将被INSERT
。
Update()
采用一个现有对象,该对象具有一个标识符但不在会话中,并将其附加到会话中。 该对象将是UPDATE
。
SaveOrUpdate()
查看标识符,并决定上面的必要条件。
SaveOrUpdateCopy()
是特殊的,就是说你有两个具有相同标识符的对象 – 一个在会话中,一个不在。 如果您尝试update
不在会话中的exception,则通常会引发exception(您现在正试图将两个代表相同持久对象的对象附加到会话中)。 SaveOrUpdateCopy()
将非会话对象状态复制到会话对象状态。
我不确定你将如何使用NH,但是对于很多情况你只需要Save()
。 会话正在做所有必要的工作,以便知道必须更新什么,并且只需执行Flush()
或Commit()
完成所需的一切。
- 如何configurationstream利的NHibernate输出查询,而不是控制台跟踪或debugging?
- entity framework4与NHibernate
- NHibernate文档的最佳位置?
- 在NHibernate Linq提供程序中获取vs FetchMany
- 使用Fluent Nhibernate定义NHibernatefilter的语法?
- 如何使用NHibernate将SQL调用logging到Visual Studio的控制台?
- 如何删除NHibernate中的子对象?
- 条件SpatialRestrictions.IsWithinDistance NHibernate.Spatial
- 当“type”T必须是一个引用types“如何使一个方法通用?