NHibernate体系结构

如题所述

NHibernate的体系结构如图1-51所示,它展示了如何通过数据库和配置文件为应用程序提供持久化服务,以及相关的对象管理。核心组件包括SessionFactory、Session、持久化对象、临时对象、事务和连接/事务工厂。


SessionFactory, 或者说是ISessionFactory,是Session的创建者,它依赖于ConnectionProvider以获取连接。它可以包含一个二级缓存,用于存储在进程或集群级别,且在事务中可以重用的数据。这种缓存有助于提高性能和资源管理。


Session是一个单线程且生命周期较短的对象,它代表了应用与持久层之间的交互。它封装了ADO.NET连接,同时也是事务的生成器。Session还维护着第一级的持久化对象缓存,用于遍历对象图或通过标识符查找对象,这在数据访问时十分关键。


持久化对象(Persistent)和它们的集合.Collections,是生命期短暂且单线程的,它们包含持久状态和业务逻辑。这些对象与Session紧密关联,一旦Session关闭,它们将从Session中解除连接,可以自由地在应用程序的其他层使用,例如作为DTO传递给表现层。


临时对象(Transient Object)及其集合(Collection)则代表那些尚未与Session关联的持久化类实例,可能是新创建但还未持久化的,或者是由已关闭的Session创建的。这些对象在需要时会被实例化,但并不直接参与到持久化操作中。


事务Transaction (ITransaction)是一个可选的、单线程且生命周期短的对象,用于表示应用程序中的原子操作。它抽象了底层ADO.NET事务,确保数据操作的完整性。一个Session可能跨越多个Transaction,但在某些情况下会保持在一个事务内。


ConnectionProvider和TransactionFactory是NHibernate的底层组件,前者负责ADO.NET连接的创建,后者负责事务实例的生成。这些组件对应用程序来说是透明的,但开发者可以根据需要进行扩展和实现。




扩展资料

NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。

温馨提示:内容为网友见解,仅供参考
无其他回答

NHibernate体系结构
NHibernate的体系结构如图1-51所示,它展示了如何通过数据库和配置文件为应用程序提供持久化服务,以及相关的对象管理。核心组件包括SessionFactory、Session、持久化对象、临时对象、事务和连接\/事务工厂。SessionFactory, 或者说是ISessionFactory,是Session的创建者,它依赖于ConnectionProvider以获取连接。它可以...

NHibernate简介
总的来说,NHibernate是一个专为.NET设计的对象持久化工具,它源于Java的Hibernate,致力于将.NET对象无缝地映射到关系型数据库,极大地简化了数据存取的开发工作。通过使用NHibernate,开发者可以专注于业务逻辑的实现,而无需过多关注底层数据库操作的复杂性。

Hibernate框架之间的关系是什么以及怎么处理
Hibernate是一个开放源代码的对象关系映射框架。对JDBC进行了非常轻量级的对象封装,使Java程序员可以随心所欲地使用对象编程思维来操纵数据库,Hibernate持久化对象是基于简单的Java对象(Plain Old Java Objects)以及Java对象集合。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以...

新手问关于asp.net三层之间引用问题、求高手解决,不甚感激!
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B\/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问...

浪曦网讲师简介
在Java技术方面,张龙(潇湘客)拥有同济大学软件工程硕士学位,对Java和J2EE体系架构有深厚的理解,对J2EE开源框架如J2EE标准、Eclipse插件开发有深入研究。他的专业技能包括熟练应用web services的原理和开发,这使他在项目实施中游刃有余。在.NET方向,潇湘客精通.NET框架,对NHibernate、Spring等框架有深入...

浪曦网的讲师简介
技术特长(Java方向):熟练掌握Java、J2EE体系架构,对J2EE常见开源框架有比较深入的研究,对J2EE标准有比较深刻的认识,擅长于Eclipse插件的开发。深入掌握web services的原理与开发并在项目中大量应用。技术特长(.NET方向):熟练掌握.NET框架,有深入的研究,熟练掌握NHibernate、Spring等开源框架,对LINQ、...

相似回答
大家正在搜