ActiveRecord充分封装了NHibernate,要想充分地使用ActiveRecord必须要了解NHibernate的持久化相关知识。
了解Sessions(会话)
NHibernate使用session来管理实体的相关操作,ActiveRecord封装了NHibernate的session管理代码,所以有必要了解下NHibernate的session
session相当于NHibernate的一个工作单元,一个客户端连接到一个session时,以后的实体的相关操作都是通过这个session来与数据库进行交互的。
出于性能的考虑,session并不会实时地与数据库进行交互,而是延迟到最后的实体操作完成后才统一地与数据库进行交互。当session中有实体的字段改变时,可调用flushing与数据库进行同步。
session有自己的事务管理机制。
实体的属性
为了描述持久化对象不同时期的不同的状态,以下有多个名称来区别。
相对于数据库来说:如果数据库存在该对象,但内存中不存在则称为non-existant,如果数据库与内存中都存在则称为existant。