• NHibernate学习(三)读取配置文件Configuration


    NHibernate配置文件的读取方法

    在我们用NHibernate框架的项目中,应用程序配置文件是非常重要的,它必须配置正确,且项目能正确的找到这个程序,才能供我们在程序中使用。

    一般的配置方法有如下几种:

    <1>  Configuration config = new Configuration();

    这种配置方法将会到应用程序配置文件(App.Config,Web.Config,默认添加的应用程序配置文件名称为App.Config)中查找NHibernate的配置信息,NHibernate的配置节必须符合应用程序配置文件的格式。

    <2>  Configuration config = new Configuration()

    config.Configure();

             这种配置方法将会在应用的相同目录查找名为”hibernate.cfg.xml”(我们为项目新建应用程序配置文件时,将名字命名为hibernate.cfg.xml的标准Hibernate配置,具体的格式就是前第一节中的应用程序配置文件格式。

    <3>  Configuration config = new Configuration();

    config.Configure(configFileName);

             这种配置方法将查找指定的NHibernate标准配置文件,可以是绝对路径或者相对路径。

     

    在取得config后,我们还需要进行映射文件添加,同样,我们常用以下3种不同的方法:

    <1> config.AddXmlFile(“Users.hbm.xml”);

    <2> config.AddClass(typeof(Demo.Model.Users));;

    <3> config.AddAssembly(“Demo.Model”);

    在标准的hibernate配制文件中,会有如下一个元素:

    <mapping assembly="Demo.Model" />即在配置文件中指定实体程序集名称

     

    ISessionFactory sessionFactory = config.BuildSessionFactory();

    在由Configuration构造完SessionFactory后,SessionFactory便保留了配置信息而不再需要Configuration,之后Configurationd的任何变化都不会影响到已经创建好的SessionFactory,如果你的配置信息发生变化,那么,毋庸置疑,你必须重新由Configuration构造出一个新的SessionFactory来。

    注意:SessionFactory是一个Heavy Object,它不但保存了配置信息,而且还有所有的映射关系(你可以调用GetAllCollectionMetadata方法试验一下),以及需要进行总体维护的缓存等等信息,所以,我们不应该重复地创建SessionFactory对象,而应该充分共用已经创建出来的SessionFactory对象,同时,SessionFactory也是一个线程安全的对象,所以在多线程的场景下也完全可以共用。在我们实际开发中,我们可以在初始化的部分构造一个SessionFactory即可,比如,在一个公共静态类中初始化一个SessionFactoryreadonly常量等等。

     

    另外需要注意的是,如果你要对多个数据库进行操作,那么你可以配置针对每个数据库而创建对应的SessionFactory——大部分情况下,一个数据库对应一个SessionFactory足够使用。

     

  • 相关阅读:
    iscroll.js & flipsnap.js
    IE8’s Substr() Bug
    chrome扩展,如何阻止浏览自动关闭桌面通知.
    临时邮箱
    多个显示器, window.open的定位
    页面刷新
    PipelineDB Install and Test
    CitusDB UPSERT
    Kafka部署
    ambari-cassandra-service
  • 原文地址:https://www.cnblogs.com/vihone/p/1731505.html
Copyright © 2020-2023  润新知