转自http://www.cnblogs.com/lyj/archive/2008/10/10/1308267.html

NHibernate是什么

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

 

NHibernate不仅仅管理.NET 类到数据库表的映射(包括.NET 数据类型到SQL 数据类型的映射),还提供数据查询和获取数据的方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据的时间。NHibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。并请记住NHibernate作为数据库访问层,是与你的程序紧密集成的。
 


 

NHibernate的架构

你知道NHibernate到底什么样子?下面我摘取官方文档中的三幅不同的结构图稍做说明。
 


第一幅图:NHibernate体系结构非常抽象的概览
这幅图展示了NHibernate在数据库和应用程序之间提供了一个持久层。

第一幅图好像非常简单?其实NHibernate是比较复杂的。我们了解两种极端情况,轻量级和重量级架构。再来第二幅图:轻量级体系,应用程序自己提供ADO.NET连接,并且自行管理事务。
 




最后一张图:重量级体系:所有的底层ADO.NET API都被抽象了。


 



NHibernate资源

NHibernate资源现在已经比较多了,但是大部分都是英文了,这里我仅仅挑选几个站点。

NHibernate专题:http://kb.cnblogs.com/zt/NHibernate/ (中文)

NHibernate官方主页:http://www.nhforge.org/(英文)

NHibernate参考文档2.1.1GA:http://nhforge.org/doc/nh/en/(英文) 社区有中文文档下载。

NHibernate之夏系列录像教程:http://www.summerofnhibernate.com/(英文)