本文不将介绍NHibernate是什么,这个在其帮助中讲得非常清楚,本人下载中提供v2.0.0的帮助文档免费下载,地址为http://down.51cto.com/data/224472。

配置

本人使用的LinFu动态代理,NHibernate的版本为v2.2,在工程中引用Iesi.Collections.dll、LinFu.DynamicProxy.dll、log4net.dll、NHibernate.ByteCode.LinFu.dll、NHibernate.dll五个dll,接下来配置web.config如下:

  1. <?xml version="1.0"?>
  2. <configuration>
  3. <configSections>
  4. <section name="hibernate-configuration"
  5. type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
  6. ...
  7. </configSections>
  8. <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  9. <session-factory>
  10. <property name="connection.provider">
  11. NHibernate.Connection.DriverConnectionProvider</property>
  12. <property name="dialect">
  13. NHibernate.Dialect.Oracle10gDialect
  14. </property>
  15. <property name="connection.driver_class">
  16. NHibernate.Driver.OracleClientDriver
  17. </property>
  18. <property name="connection.connection_string">
  19. Data Source=sid;User ID=username;Password=passwd;
  20. Persist Security Info=true;Unicode=True</property>
  21. <property name="proxyfactory.factory_class">
  22. NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
  23. NHibernate.ByteCode.LinFu
  24. </property>
  25. <property name="show_sql">true</property>
  26. <mapping assembly="GXSN.CMS.NH.Oracle"/>
  27. </session-factory>
  28. </hibernate-configuration>
  29. </configuration>

其中,GXSN.CMS.NH.Oracle是映射XML所在工程的工程名。

基本用法

在配置完成后,一般实际应用过程中,会将NHibernate单独封装为一个工程,作为NHibernate数据访问辅助类,在本人下载中已提供参考工程,见下载地址http://down.51cto.com/data/220594,此工程名为GXSN.DataAccess.NH.Util,组成如下图:

其中

NHibernateHelper<T>:NHibernate数据访问辅助泛型单件类,实现查询与非查询功能,完成依赖NHibernate库,NHibernate库内置接口到此结束,不对系统其它部分造污染,更好地做到整个系统对NHibernate库依赖,而是依赖自定义的Oper<T>类和enumOperation枚举,为系统以后在数据访问中的演化提供条件;
Oper<T>:原子操作描述泛型类,包括业务实体和操作类型,依赖enumOperation枚举;
enumOperation:操作枚举。

在引用NHibernate数据访问辅助类后,如在添加学生信息中,写好XML映射文件(关于XML映射文件参考帮助文档),再只需要如下代码完成即完成:

  1. GXSN.DataAccess.NH.Util.NHibernateHelper<GXSN.CMS.Entity.ContentClassInfo>.
  2. Instance.NonQuery(GXSN.DataAccess.NH.Util.enumOperation.Save, studentInfo);

P.S. 在使用过程中,需要治理好代码的相互依赖关系,否则会为以期系统的演化带来灾难。还有就是NH是最终被翻译为ado.net进行执行,个人感觉不一定比ado.net快,只不过有的地方使用起来方便点,

\

本文转自 彭金华  51CTO博客,原文链接:http://blog.51cto.com/pengjh/613106

NHibernate基础相关推荐

  1. NHibernate 基础

    install-package nhibernate install-package nunit Customer.cs public class Customer{public virtual Gu ...

  2. Nhibernate 基础关系映射

    多对一 <many-to-one name="OrderEntity" column="OrderID" class="MedicalSyste ...

  3. NHibernate扩展:FluentNHibernate基础教程

    http://www.cyqdata.com/nhibernate/article-detail-2523 经过大大小小的项目之后,在在DevText项目中使用下Fluent NHibernate,今 ...

  4. NHibernate之映射文件配置说明(转载2)

    六.鉴别器 在"一棵对象继承树对应一个表"的策略中,<discriminator>元素是必需的, 它定义了表的鉴别器字段. 鉴别器字段包含标志值,用于告知持久化层应该为 ...

  5. 【转】NHibernate入门教程

    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo 摘要: 热衷于开源框架探索的我发现A ...

  6. Nhibernate学习起步之many-to-one篇(转)

    1.     学习目的: 通过进一步学习nhibernate基础知识,在实现单表CRUD的基础上,实现两表之间one-to-many的关系. 2.     开发环境+必要准备 开发环境: window ...

  7. NHibernate之映射文件配置说明

    1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为 ...

  8. Nhibernate学习之many-to-many篇

    学习目的: 通过进一步学习Nhibernate基础知识,掌握用Nhiberate实现多对多的业务逻辑 开发环境+必要准备 开发环境: windows 2003,Visual studio .Net 2 ...

  9. Nhibernate学习之起步篇-1

    1. 学习目的 学习Nhibernate基础知识.掌握Nhibernate的配置方法,实现对单表的简单操作,如:创建表,查询,添加,删除,修改. 2. 开发环境+前期准备开发环境: windows 2 ...

最新文章

  1. 威纶通触摸屏可以解密吗_施耐德PLC与威纶触摸屏通讯步骤
  2. dede:php不显示,dede 织梦编辑框显示不出来的问题
  3. 我们眼中的2015年互联网10大产品事件
  4. 成功解决A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,co
  5. GNU C 中的零长数组
  6. Apple 预计于内华达州雷诺市再盖一个数据中心
  7. vba 字典_VBA中字典的基础概念及调用方法
  8. 在统计学中参数的含义是指_《统计学》名词解释及公式
  9. 深入了解EntityFramework——Fluent API
  10. 大白话讲解word2vec到底在做些什么
  11. pci-e服务器显卡性能,PCI-E带宽揭密 显卡究竟能吃多大的带宽
  12. matlab eigs 求特征值函数
  13. 常用的十种算法:二分查找,分治,动态规划,KMP
  14. matlab if 多条,matlab多个if条件嵌套
  15. Kotlin+Retrofit + MVVM 的网络请求框架的封装
  16. 农夫过河——python类穷举法实现
  17. iPhone12蜜汁操作,环保还是揽财?
  18. Android_Studio
  19. 三菱A系列程序改成Q系列程序,实例说明 包含原程序与改后的程序,方便对照
  20. HBuilderX使用Git

热门文章

  1. vue指令模式 添加埋点
  2. python职业发展规划-Python开发者的四大进阶攻略,菜鸟的成神之路
  3. easyui复杂表单_jQuery EasyUI 表单 – 创建树形下拉框(ComboTree) | 菜鸟教程
  4. 【GAOPS002】round robin Verilog实现
  5. Mac不能复制拷贝写入文件到移动硬盘/U盘解决办法
  6. 二年级课程表(4月11日-4月15日)
  7. Latex文本两端对齐
  8. pod spec的创建及其使用
  9. 还不会怎样同时打开多个微信?一次性打包带走吧
  10. 塑壳断路器用考虑启动电流么_塑壳断路器和微型断路器的区别