NHibernate使用之详细图解
2015-07-30 11:17
162 查看
本文档适合初级开发者或者是第一次接触NHibernate框架的朋友,其中NHibernate不是最新的版本,但是一个比较经典的版本 NHibernate 2.1.2,其中用红线标注的部分一定要仔细看,这些都是容易忽略和出错的地方,笔者在此给大家做了特殊标记。
NHibernate框架的介绍:http://baike.baidu.com/view/954535.htm
开发环境 Vs 2010 + MsSql2005 + NHibernate 2.1.2.
本示例的下载地址:点击下载;NHibernate 2.1.2的下载地址:点击下载;
目录
步骤一、创建数据库和映射的表。
步骤二、创建项目和实体类映射类以及类对应的映射文件。
步骤三、添加项目引用与NHibernate的dll文件。
步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)无需配置web.config。
步骤五、创建和使用NHibernate.
步骤一、创建数据库和映射的表。如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517352355.png)
数据库:hibDB,映射表:people.
步骤二、创建项目和实体类映射类以及类对应的映射文件。
新建一个网站,网站创建之后,网站解决方案右键,选择添加 => 新建项目 => 类库
![](http://pic002.cnblogs.com/images/2011/172074/2011091517353650.png)
![](http://pic002.cnblogs.com/images/2011/172074/2011091517354551.png)
给类库起名,本测试程序名称为:Com.uuu9.nHibernate,然后把自带的Class1.cs改名为创建映射表的名称(映射实体类的名称),本示例为People.cs,其中实体类的代码为表属性的set与get,如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517355419.png)
与之前写的实体类不同的是此实体类每个属性前面就加了virtual,虚方法或者属性的关键字,子类可以从新定义(override),在这里必须有virtual 关键字,不然程序运行就会出错。笔者判断此原因可能是程序在运行时候此属性被重新映射(定义),所以必须添加virtual关键字。
然后比较重要的一个步骤就是配置此实体类对应的映射文件,此映射xml文件名称固定为“实体类.hbm.xml”,其代码如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517360723.png)
实体类的属性配置,其中“Com.uuu9.nHibernate”为上述所建类库(生成程序集的名称)的名称。注意:每个实体类对应的映射文件“实体类.hbm.xml”,都要右键设置生成类型属性为:嵌入的资源。如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517362117.png)
因为当作为一个资源被嵌入后,项目的默认命名空间与文件名就组成了资源访问的完整名称,NHibernate运行时会访问资源的完整名称,但如果不设置,程序就找不到映射文件,就会认为此类没有设置映射,也就不能使用NHibernate操作。
步骤三、添加项目引用与NHibernate(版本2.1.2)的dll文件。
要引用的NHibernate的dll如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517363243.png)
其中都为必须引用的dll。
步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)
hibernate.cfg.xml文件为NHibernate的配置文件,名称固定,且必须放到Bin目录中。内容如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517364145.png)
![](http://pic002.cnblogs.com/images/2011/172074/2011091517365262.png)
name可以自己随意定义,
![](http://pic002.cnblogs.com/images/2011/172074/2011091517370521.png)
“NHibernate.Dialect.MsSql2005Dialect”可根据实际的数据库的需要改为 2000Dialect、2008Dialect。
注意:“<mapping assembly="Com.uuu9.nHibernate"/>”为实体类生成程序集的名称,一直要写正确,一定要有。
步骤五、创建和使用NHibernate
使用的代码如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517371359.png)
至此NHibernate制作完毕。
本示例的下载地址:点击下载;NHibernate 2.1.2的下载地址:点击下载;
NHibernate框架的介绍:http://baike.baidu.com/view/954535.htm
开发环境 Vs 2010 + MsSql2005 + NHibernate 2.1.2.
本示例的下载地址:点击下载;NHibernate 2.1.2的下载地址:点击下载;
目录
步骤一、创建数据库和映射的表。
步骤二、创建项目和实体类映射类以及类对应的映射文件。
步骤三、添加项目引用与NHibernate的dll文件。
步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)无需配置web.config。
步骤五、创建和使用NHibernate.
步骤一、创建数据库和映射的表。如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517352355.png)
数据库:hibDB,映射表:people.
步骤二、创建项目和实体类映射类以及类对应的映射文件。
新建一个网站,网站创建之后,网站解决方案右键,选择添加 => 新建项目 => 类库
![](http://pic002.cnblogs.com/images/2011/172074/2011091517353650.png)
![](http://pic002.cnblogs.com/images/2011/172074/2011091517354551.png)
给类库起名,本测试程序名称为:Com.uuu9.nHibernate,然后把自带的Class1.cs改名为创建映射表的名称(映射实体类的名称),本示例为People.cs,其中实体类的代码为表属性的set与get,如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517355419.png)
与之前写的实体类不同的是此实体类每个属性前面就加了virtual,虚方法或者属性的关键字,子类可以从新定义(override),在这里必须有virtual 关键字,不然程序运行就会出错。笔者判断此原因可能是程序在运行时候此属性被重新映射(定义),所以必须添加virtual关键字。
然后比较重要的一个步骤就是配置此实体类对应的映射文件,此映射xml文件名称固定为“实体类.hbm.xml”,其代码如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517360723.png)
实体类的属性配置,其中“Com.uuu9.nHibernate”为上述所建类库(生成程序集的名称)的名称。注意:每个实体类对应的映射文件“实体类.hbm.xml”,都要右键设置生成类型属性为:嵌入的资源。如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517362117.png)
因为当作为一个资源被嵌入后,项目的默认命名空间与文件名就组成了资源访问的完整名称,NHibernate运行时会访问资源的完整名称,但如果不设置,程序就找不到映射文件,就会认为此类没有设置映射,也就不能使用NHibernate操作。
步骤三、添加项目引用与NHibernate(版本2.1.2)的dll文件。
要引用的NHibernate的dll如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517363243.png)
其中都为必须引用的dll。
步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)
hibernate.cfg.xml文件为NHibernate的配置文件,名称固定,且必须放到Bin目录中。内容如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517364145.png)
![](http://pic002.cnblogs.com/images/2011/172074/2011091517365262.png)
name可以自己随意定义,
![](http://pic002.cnblogs.com/images/2011/172074/2011091517370521.png)
“NHibernate.Dialect.MsSql2005Dialect”可根据实际的数据库的需要改为 2000Dialect、2008Dialect。
注意:“<mapping assembly="Com.uuu9.nHibernate"/>”为实体类生成程序集的名称,一直要写正确,一定要有。
步骤五、创建和使用NHibernate
使用的代码如图:
![](http://pic002.cnblogs.com/images/2011/172074/2011091517371359.png)
至此NHibernate制作完毕。
本示例的下载地址:点击下载;NHibernate 2.1.2的下载地址:点击下载;
相关文章推荐
- MyBatis/Ibatis中#和$的区别
- 用UltraEdit判断打开文件的编码类型
- 操作系统——进程调度之短进程优先
- 两种php给图片加水印的实现代码
- eclipse快捷键大全
- 《C++编程思想》第六章 输入输出流介绍(原书代码+习题+解答)
- MPEG2 TS概念总结
- iphone之NSUserDefaults
- machine learn in python 第二章2.1.1
- android手机上安装apk时出现解析包错误的一个解决办法
- Ubuntu 配置Eclipse 导入工程完整设置 嵌入式工具链的安装
- App推送程序
- C++ Trace和assert 的使用
- 树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW
- 用javascript写的加法运算的两种方法
- Android开发:如何把Android studio中的Library发布到Jcenter
- 字节流和字符流
- 《如果我不曾见过太阳》
- float闭合(清除浮动)和CSS HACK
- mysql报Fatal error encountered during command execution的解决办法