博客
关于我
NHibernate使用之详细图解
阅读量:801 次
发布时间:2023-02-15

本文共 1501 字,大约阅读时间需要 5 分钟。

本文档适合初级开发者或者是第一次接触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.

步骤一、创建数据库和映射的表。如图:

数据库:hibDB,映射表:people.

步骤二、创建项目和实体类映射类以及类对应的映射文件

新建一个网站,网站创建之后,网站解决方案右键,选择添加 => 新建项目 => 类库

给类库起名,本测试程序名称为:Com.uuu9.nHibernate,然后把自带的Class1.cs改名为创建映射表的名称(映射实体类的名称),本示例为People.cs,其中实体类的代码为表属性的set与get,如图:

与之前写的实体类不同的是此实体类每个属性前面就加了virtual,虚方法或者属性的关键字,子类可以从新定义(override),在这里必须有virtual 关键字,不然程序运行就会出错。笔者判断此原因可能是程序在运行时候此属性被重新映射(定义),所以必须添加virtual关键字。

然后比较重要的一个步骤就是配置此实体类对应的映射文件,此映射xml文件名称固定为“实体类.hbm.xml”,其代码如图:

实体类的属性配置,其中“Com.uuu9.nHibernate”为上述所建类库(生成程序集的名称)的名称。注意:每个实体类对应的映射文件“实体类.hbm.xml”,都要右键设置生成类型属性为:嵌入的资源。如图:

因为当作为一个资源被嵌入后,项目的默认命名空间与文件名就组成了资源访问的完整名称,NHibernate运行时会访问资源的完整名称,但如果不设置,程序就找不到映射文件,就会认为此类没有设置映射,也就不能使用NHibernate操作。

步骤三、添加项目引用与NHibernate(版本2.1.2)的dll文件。

要引用的NHibernate的dll如图:

其中都为必须引用的dll。

步骤四、配置hibernate.cfg.xml文件(数据库映射信息配置)

hibernate.cfg.xml文件为NHibernate的配置文件,名称固定,且必须放到Bin目录中。内容如图:

name可以自己随意定义,

NHibernate.Dialect.MsSql2005Dialect”可根据实际的数据库的需要改为 2000Dialect、2008Dialect。

注意:“<mapping assembly="Com.uuu9.nHibernate"/>”为实体类生成程序集的名称,一直要写正确,一定要有。

步骤五、创建和使用NHibernate

使用的代码如图:

至此NHibernate制作完毕。

本示例的下载地址:;NHibernate 2.1.2的下载地址:;

Orm框架相关文章链接:

1.

2.

3.

4.

5.

6.

转载地址:http://myjfk.baihongyu.com/

你可能感兴趣的文章
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
MFC模态对话框和非模态对话框
查看>>