Nhibernate算是比较成熟的一个ORM框架,想想用过的NET中的ORM,算起来大致有以下几种
1、ADO.NET Entity Framework
2、Nhibernate
3、Linq to sql Class(也算一个吧)
4、DataSet
还有没有过的类似IBatis等。
本人才疏学浅,对高层的理论不很精通,只能达到在项目中会用的程度,以下篇幅仅限介绍如何在项目中配置、使用等,仅以自己在项目中的经验来记录我的学习过程,如果有幸能帮上别人,则不胜欣慰。
1、NHibernate配置。
先贴下自己的项目结构:主要涉及业务逻辑层(图1)和领域模型层(DomainModels,图2)。
图1
图2
BLL称为业务逻辑层,这里由于业务逻辑简单,我将业务逻辑和对ORM的CRUD操作都放在这里,以下简称业务层。Models就是所谓的领域模型层,以下简称模型层。
我用步骤标示配置的过程:
①在业务层导入DLL。我们看到BLL层有一个SharedLibs文件夹,这个里面主要放了NHibernate相关的DLL,其实这个文件夹主要是为了看着清晰才建的,熟练的话完全可以不用建立这个文件夹,可以直接通过浏览添加这些引用。我们看看里面都有什么。
图3
这里有一些DLL和XML,还有一些PDB文件,PDB是debug情况下产生的一些文件,我们可以将其删去。加入了XML文件,你在使用NHibernate的一些方法的时候你会看到提示。
在BLL层,引入三个DLL,“Iesi.Collections.dll”、“NHibernate.dll”和“NHibernate.ByteCode.Castle.dll”(别问我为什么只需要引入3个,应该是依赖了其他的吧,具体不祥,有知道的欢迎告诉我。)
然后加入config文件“hibernate.cfg.xml”,内容如下,解释稍后。
<?xml version="1.0" encoding="utf-8"?>
<hibernate-configuration xmlns="u