在哪里可以找到NHibernate ISession.Persist()的文档?

在哪里可以找到NHibernate ISession.Persist()的文档?,nhibernate,isession,Nhibernate,Isession,NHibernate的ISession公开了一个带有两个重载的Persist()方法。我在任何地方都找不到有关此方法的文档。它甚至没有在NHibernate的参考资料中提到 此方法是否已被弃用,或者是否将被弃用?应该什么时候使用?它与SaveOrUpdate()相比如何 任何指针都将不胜感激。关于此线程的最后一条评论非常详细: persist()定义良好。这是一个好主意 临时实例持久化。 然而,这并不能保证 标识符值将被分配给 持久实例立即, 该任务可能在同花顺时发生 时间说明书上没有这么说,这

NHibernate的ISession公开了一个带有两个重载的Persist()方法。我在任何地方都找不到有关此方法的文档。它甚至没有在NHibernate的参考资料中提到

此方法是否已被弃用,或者是否将被弃用?应该什么时候使用?它与SaveOrUpdate()相比如何


任何指针都将不胜感激。

关于此线程的最后一条评论非常详细:

persist()定义良好。这是一个好主意 临时实例持久化。 然而,这并不能保证 标识符值将被分配给 持久实例立即, 该任务可能在同花顺时发生 时间说明书上没有这么说,这 是我在persist()上遇到的问题

persist()还保证它将 如果INSERT语句 在事务外部调用 边界。这在某些情况下很有用 与 扩展会话/持久性上下文

需要一个类似persist()的方法

save()不能保证相同,它 返回一个标识符,如果 必须执行INSERT以获取 标识符(如“标识”生成器、, 而不是“顺序”),此插入发生 马上,不管你是不是 在交易的内部或外部。 从长远来看,这是不好的 与一个扩展用户的对话 会话/持久性上下文


另外,从我从其他来源收集到的信息来看,具有cascade=“persist”的实体将在调用时级联,而不是在flush上。这可能也很有用。

这是一个极好的发现。非常感谢。我想我实际上应该使用SaveOrUpdate()而不是Persist()。。但是Persist()在某些情况下可能确实有用。现在,如果我只知道如何使用FluentNHibernate指定cascade=persist。。。。谢谢你的帮助!