NHibernate的ISessionFactory的配置

1.NHibernate.Cfg.Configuration的一个实例代表了应用程序中所有的.NET类到SQL数据库的映射集合,用于构造一个

(不可变的)ISessionFactory,这些映射是从一写XML映射文件中编译得来.

方法一:直接便宜XML文件得来

Configuration cfg=new Configuration()

.AddXmlFile("name1.hbm.xml")

.AddXmlFile("name2.hbm.xml");

方法二:通过NHibernate自行用GetManifestResourceStream()来装载映射文件.

Configuration cfg=new Configuration()

.AddClass(typeof(name1))

.AddClass(typeof(name2));

方法三:读取程序集中所以的映射配置文件

如有配置文件:NHibernateDemo.name1.hbm.xml,NHibernateDemo.name2.hbm.xml

Configuration cfb=new Configuration()

.AddAssembly("a");

通过这样的方式NHibernate将会遍历整个程序集查找任何以hbm.xml结尾的文件.取消了对文件名的硬编码,确保程序集

中的配置文件都会被加载.

注意:Configuration只在配置期使用的对象,从第一个ISessionFactory开始建立时就会失效.

2.获取ISessionFactory

ISessionFactory sessions=cfg.BuildSessionFactory();

该工厂被应用程序所以线程共享,并可实例化多个ISessionFactory.

3.自行提供ADO.NET连接

IDbConnection conn=new myapp.GetOpenConnection();

ISession session=sessions.OpenSession(conn);

注意:不能在同一个连接上打开两个并行的ISession.

时间: 2024-08-02 19:50:08

NHibernate的ISessionFactory的配置的相关文章

NHibernate.cfg.xml文件配置示例

NHibernate.cfg.xml文件配置 <?xml version="1.0" encoding="utf-8"?><hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2"><session-factory name="NHibernate.Test"><property name="conne

[NHibernate]ISessionFactory配置

系列文章 [Nhibernate]体系结构 引言 在上篇文章学习了orm和nhibernate相关概念,这篇文章主要学习ISessionFactory如何配置. 因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数.不过,大部分都已经有默认值了.NHibernate.Test.dll包含了一个示例的配置文件app.config,它演示了一些可变的参数. 可编程配置方式 NHibernate. Cfg.Configuration的一个实例代表了应用程序中所有的.Net类到

[NHibernate]基本配置与测试

目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确实没接触过,EF多少在项目中用过,想着既然都是ORM,应该语法上都差不多.当时也就是硬着头皮上的,刚开始也只能通过模仿别人的代码,再加上自己的理解,一些增删改查的方法,确实也被自己给搞出来了,现在回头想想,在项目中,用到的那些方法基本上就一个样,很少有变化.除非有些业务逻辑非常强的,自己搞不定,问一

我的NHibernate之路(1)---基本配置篇

对初学者来说,学习NHibernate第一个障碍便是他的配置.确实,相对于 LINQ TO SQL或者是Entity FrameWork来说,他的配置太复杂了,各个实体类对 应的映射文件.以及NHibernate自身的配置等等,对象刚学习NHibernate的新手 来说,确实是摆在他们面前的一道坎.那么NHibernate的配置到底应该注意哪些 问题?又该如何去进行配置呢?俗话说"给人鱼不如授人以渔".下面我就说说 自己在使用NHibernate配置的过程,以及在配置中出现问题后,怎样

.Net——Nhibernate实现CRUD

               最近用到SSH(spring+struct+hibernate),从java里面的hibernate,不自觉联系到.net里面的Nhibernate.         下面来简单聊下Nhibernate.     一,引入Dll                主要有三个:                  基本的就这三个,其他的,比如Castle.Core.dll,Castle.DynamicProxy2.dll,Iesi.Collections.dll,log4n

Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发

Fluent Nhibernate(以下简称FN)发展到如今,已经相当成熟了,在Nhibernate的书中也相应的推荐了使用FN来进行映射配置,之前写的FN之旅至今还有很多人会来私信我问题,说来惭愧,从FN之旅四至今已经4年多,至今还未更新过此系列,原因有很多,最大的就是懒惰,哈. 安装 现在在项目中使用FN很方便,使用Nuget管理就可以了,但我还是建议大家,可以下载源代码,自己可以详细了解下. 当然,您也可以用命令台来进行安装.说个题外话,NuGet真心不错,至少已经做新项目的时候不用到处去

[原创]Fluent NHibernate之旅

ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开的框架,而最常用而且强大的,非Hibernate了(Net中为NHibernate),网上的文档非常多,不过在博客园中,介绍NHibernate的非常少,李哥的NHibernate系列(NHibernate之旅)不失为一个经典,对于新手的我们,需要完全掌握还需要很长一段路,对于新手来说,最初的配置是非常头大的一件事情,好在老赵推荐一个开源的框架Fluent NHibernate,有了它,我们可以完全脱离配置文件,不过博客园中介绍F

NHibernate 3.2 使用 Conformist 进行 CodeFirst 开发

NHibernate 3.2 GA 正式版于 2011-07-30 发布,这一版本对 CodeFirst 的支持性更好了,因为它提供了 Conformist 取代之前第三方的 ConfOrm.   NHibernate 3.2 下载地址:http://sourceforge.net/projects/nhibernate/files/NHibernate/   下面将讲一下如何使用这一新成员进行数据库的基本操作.我使用的开发环境是:VS2010 + NHibernate 3.2 + MVC 3,

NHibernate初学体验记

      NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库.NHibernate 来源于优秀的基于Java的关系型持久化工具Hibernate.NHibernate持久化你的.Net 对象到关系型数据库,远胜于写SQL去从数据库存取对象.你的代码仅仅和对象关联,NHibernat 自动产生SQL语句,并确保对象提交到正确的表和字段中去.NHibernate极大地减少了数据层代码的编写,当然提高了开发的效率和质量.体验一下吧.(有关Hibernate的资料请参考文末)