NHibernate基础
本文不将介绍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如下:
- <?xml version="1.0"?>
- <configuration>
- <configSections>
- <section name="hibernate-configuration"
- type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
- ...
- </configSections>
- <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
- <session-factory>
- <property name="connection.provider">
- NHibernate.Connection.DriverConnectionProvider</property>
- <property name="dialect">
- NHibernate.Dialect.Oracle10gDialect
- </property>
- <property name="connection.driver_class">
- NHibernate.Driver.OracleClientDriver
- </property>
- <property name="connection.connection_string">
- Data Source=sid;User ID=username;Password=passwd;
- Persist Security Info=true;Unicode=True</property>
- <property name="proxyfactory.factory_class">
- NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
- NHibernate.ByteCode.LinFu
- </property>
- <property name="show_sql">true</property>
- <mapping assembly="GXSN.CMS.NH.Oracle"/>
- </session-factory>
- </hibernate-configuration>
- </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映射文件参考帮助文档),再只需要如下代码完成即完成:
- GXSN.DataAccess.NH.Util.NHibernateHelper<GXSN.CMS.Entity.ContentClassInfo>.
- Instance.NonQuery(GXSN.DataAccess.NH.Util.enumOperation.Save, studentInfo);
P.S. 在使用过程中,需要治理好代码的相互依赖关系,否则会为以期系统的演化带来灾难。还有就是NH是最终被翻译为ado.net进行执行,个人感觉不一定比ado.net快,只不过有的地方使用起来方便点,
\
本文转自 彭金华 51CTO博客,原文链接:http://blog.51cto.com/pengjh/613106
NHibernate基础相关推荐
- NHibernate 基础
install-package nhibernate install-package nunit Customer.cs public class Customer{public virtual Gu ...
- Nhibernate 基础关系映射
多对一 <many-to-one name="OrderEntity" column="OrderID" class="MedicalSyste ...
- NHibernate扩展:FluentNHibernate基础教程
http://www.cyqdata.com/nhibernate/article-detail-2523 经过大大小小的项目之后,在在DevText项目中使用下Fluent NHibernate,今 ...
- NHibernate之映射文件配置说明(转载2)
六.鉴别器 在"一棵对象继承树对应一个表"的策略中,<discriminator>元素是必需的, 它定义了表的鉴别器字段. 鉴别器字段包含标志值,用于告知持久化层应该为 ...
- 【转】NHibernate入门教程
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo 摘要: 热衷于开源框架探索的我发现A ...
- Nhibernate学习起步之many-to-one篇(转)
1. 学习目的: 通过进一步学习nhibernate基础知识,在实现单表CRUD的基础上,实现两表之间one-to-many的关系. 2. 开发环境+必要准备 开发环境: window ...
- NHibernate之映射文件配置说明
1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为 ...
- Nhibernate学习之many-to-many篇
学习目的: 通过进一步学习Nhibernate基础知识,掌握用Nhiberate实现多对多的业务逻辑 开发环境+必要准备 开发环境: windows 2003,Visual studio .Net 2 ...
- Nhibernate学习之起步篇-1
1. 学习目的 学习Nhibernate基础知识.掌握Nhibernate的配置方法,实现对单表的简单操作,如:创建表,查询,添加,删除,修改. 2. 开发环境+前期准备开发环境: windows 2 ...
最新文章
- 威纶通触摸屏可以解密吗_施耐德PLC与威纶触摸屏通讯步骤
- dede:php不显示,dede 织梦编辑框显示不出来的问题
- 我们眼中的2015年互联网10大产品事件
- 成功解决A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,co
- GNU C 中的零长数组
- Apple 预计于内华达州雷诺市再盖一个数据中心
- vba 字典_VBA中字典的基础概念及调用方法
- 在统计学中参数的含义是指_《统计学》名词解释及公式
- 深入了解EntityFramework——Fluent API
- 大白话讲解word2vec到底在做些什么
- pci-e服务器显卡性能,PCI-E带宽揭密 显卡究竟能吃多大的带宽
- matlab eigs 求特征值函数
- 常用的十种算法:二分查找,分治,动态规划,KMP
- matlab if 多条,matlab多个if条件嵌套
- Kotlin+Retrofit + MVVM 的网络请求框架的封装
- 农夫过河——python类穷举法实现
- iPhone12蜜汁操作,环保还是揽财?
- Android_Studio
- 三菱A系列程序改成Q系列程序,实例说明 包含原程序与改后的程序,方便对照
- HBuilderX使用Git