NHibernate中Persistence模型的确切含义是什么?

时间:2012-06-24 21:50:49

标签: nhibernate orm fluent-nhibernate

我是Orm's的新工作,这个问题对我来说是NHibernate中的持久性模型以及瞬态对象与持久性对象。

1 个答案:

答案 0 :(得分:0)

以下是 documentation的定义:

  

持久对象和馆藏

     

包含持久状态和的持久状态的短期单线程对象   商业功能。这些可能是普通的POCO,唯一的特殊   关于他们的事情是他们目前与之相关(确切地说   一)ISession。会议结束后,会立即分离   并可在任何应用层中自由使用(例如直接用作数据)   将对象转移到演示文稿之间。

     

瞬态对象和集合

     

当前未与之关联的持久类的实例   一个会议。它们可能已经被应用程序实例化而不是   (还)坚持或者他们可能已被关闭实例化   的ISession。

instance states上:

  

持久化类的实例可以是三种不同的一种   状态,它们是针对持久化上下文定义的。该   NHibernate ISession对象是持久化上下文:

     

<强>瞬态

     

该实例不是,并且从未与任何相关联   持久化上下文。它没有持久性身份(主键   值)。

     

<强>持久

     

该实例当前与持久性上下文相关联。它   有一个持久的身份(主键值),也许,一个   数据库中的相应行。对于特定的持久性   上下文,NHibernate保证持久标识是等价的   到CLR标识(对象的内存中位置)。

     

<强>分离

     

该实例曾与持久化上下文相关联,但那样   上下文已关闭,或者实例已序列化为另一个进程。   它有一个持久的身份,也许是一个相应的行   数据库。对于分离的实例,NHibernate不保证   持久性身份与CLR身份之间的关系。