首页 > Python基础教程 >
-
C#教程之Nhibernate探索
C#—Nhibernate探索
本篇文章,让我们一起来探索Nhibernate。
首先我们去搜索Nhibernate下载地址,如下链接所示。
该版本可能是最新版,我下载的4.0.4.GA。其中GA意思我没搞清楚。不过应该不重要。
https://sourceforge.net/projects/nhibernate/
分析文件内容
下载完成后,解压缩,我们看到文件夹内容如下图所示。
我们可以分析得出,其中Required_Bins存储的是类库和其他资源;字面的意思Required,是必须文件。
打开Required文件夹,我们看到里面是这样的。
这里有两个类库;可以分析得出,这两个类库是要被引用的。
类库拥有对应的XML,没找到具体使用该XML的方法。所以暂时不去理他。
NHibernate.pdb应该是没有用的。估计是作者忘记删除了。
nhibernate-configuration.xsd和nhibernate-mapping.xsd两个文件暂时不知道要干什么用的。
但看到.xsd文件,第一时间反应,他们应该是用来帮助开发者,快速生成配置文件用的。为了保险起见,我们上网查询一下。
查询结果:
查询结果是,他们俩是【文件智能提示功能】用的。
且nhibernate-configuration.xsd和nhibernate-mapping.xsd是要放到c盘的,路径如下:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Xml\Schemas
因为是我用的是vs2012,所以,我找的路径是Microsoft Visual Studio 11.0。并将文件放在了那里面。
虽然感觉,这俩文件好像不是这么用的,但由于可以判断它们并不影响程序运行,所以,先且不管他们,等程序运行起来后,再删除他们试试。
再之后,我上网调查了下Nhibernate的应用。
上网调查后,发现Nhibernate有Castle框架、LinFu框架、Spring.Net三种。
看起来很复杂,文章有很多,写的又很复杂,于是我放弃调查,直接尝试使用,首先第一步,直接引用类库。
一、建立了一个类库程序,引用Iesi.Collections.dll和NHibernate.dll两个DLL。
接下来,我们开始建立持久化对象。
1
2
3
4
5
|
public class Test { public virtual int Id { get ; set ; } public virtual string Name { get ; set ; } } |
接下来建立持久化对象与数据库的映射。再次上网调查。
调查结果:
对象与数据库的映射是保存在XML文件中的,于是我配置XML映射文件如下。
该XML文件的属性,要求设置其生成操作为【嵌入的资源】。
但我怕它丢失,还给他设置了始终复制的属性。
XML文件如下:
1
2
3
4
5
6
7
8
9
10
11
|
<?xml version= "1.0" encoding= "utf-8" ?> <hibernate-mapping xmlns= "urn:nhibernate-mapping-2.2" assembly= "NherbinateHelper" namespace = "NherbinateHelper" > < class name = "Test" > <id name= "Id" column = "Id" > <generator class = "native" /> </id> <property name = "Name" /> </ class > </hibernate-mapping> |
再然后,我需要建立数据库连接的类。
再次上网调查。编写NHibernateHelper如下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class NHibernateHelper { private ISessionFactory _sessionFactory; public NHibernateHelper() { _sessionFactory = GetSessionFactory(); } private ISessionFactory GetSessionFactory() { return ( new Configuration()).Configure().BuildSessionFactory(); } public ISession GetSession() { return _sessionFactory.OpenSession(); } } |