我是Orm's的新工作,这个问题对我来说是NHibernate中的持久性模型以及瞬态对象与持久性对象。
答案 0 :(得分:0)
以下是nhibernate documentation的定义:
持久对象和馆藏
包含持久状态和的持久状态的短期单线程对象 商业功能。这些可能是普通的POCO,唯一的特殊 关于他们的事情是他们目前与之相关(确切地说 一)ISession。会议结束后,会立即分离 并可在任何应用层中自由使用(例如直接用作数据) 将对象转移到演示文稿之间。
瞬态对象和集合
当前未与之关联的持久类的实例 一个会议。它们可能已经被应用程序实例化而不是 (还)坚持或者他们可能已被关闭实例化 的ISession。
持久化类的实例可以是三种不同的一种 状态,它们是针对持久化上下文定义的。该 NHibernate ISession对象是持久化上下文:
<强>瞬态强>
该实例不是,并且从未与任何相关联 持久化上下文。它没有持久性身份(主键 值)。
<强>持久强>
该实例当前与持久性上下文相关联。它 有一个持久的身份(主键值),也许,一个 数据库中的相应行。对于特定的持久性 上下文,NHibernate保证持久标识是等价的 到CLR标识(对象的内存中位置)。
<强>分离强>
该实例曾与持久化上下文相关联,但那样 上下文已关闭,或者实例已序列化为另一个进程。 它有一个持久的身份,也许是一个相应的行 数据库。对于分离的实例,NHibernate不保证 持久性身份与CLR身份之间的关系。