• 微积微发之NHibernate系列之NHibernate的配置讲解


    不知道你跟着《微积微发之NHibernate系列之NHibernate的配置》做了没,没跟着做,这篇你也没必要继续看下去了,否则只能是浪费你的生命,如果跟着做了,那就打开你的项目,看看里面的一些配置是啥子意思吧!

    <session-factory>
          <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
          <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          <property name="connection.connection_string">

            Server=.;Initial Catalog=MyTest;Integrated Security=SSPI;
         
    </property>
          <mapping assembly="NHibernateTest"/>
        </session-factory>

    我们在<configSections>在配置文件里定义了一个配置节(<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate"/>)并且声明了这个配置节里面的数据如何解析。<hibernate-configuration> 配置包含了NHibernate的配置信息,告诉NHibernate我们使用 Microsoft SQL Server 2008数据库并且通过指定的连接字符串连接数据库. 方言(dialect)是必选设置,每个数据库对SQL标准的解释都不一样。 NHibernate通过方言(dialect)来消除各种数据库之间对SQL标准的解释的差异。

     <hibernate-configuration>配置节的最后一个元素mapping 声明了 NHibernateTest作为包含持久化类以及对应映射文件所在的应用程序集名称。

    为了让上面提到运行时Users.cs类增强功能生效,NHibernate持久化类的所有的public的属性必须声明为virtual

    接下来我们打开NHibernateHelper.cs

    我们现在可以开始使用NHibernate的ISession了。它是一个持久化管理器, 我们通过ISession来从数据库中存取Users。首先,我们要从ISessionFactory中获取一个ISession(NHibernate的工作单元)。

    ISessionFactory代表一个数据库,并且使用一个XML配置文件(Web.config或者hibernate.cfg.xml)。 NHibernate通过对Configuration().Configure()的调用来装载配置文件,并初始化成一个Configuration实例。通过Configuration实例创建一个ISessionFactory。 在创建 ISessionFactory之前(它是不可变的),你可以访问Configuration来设置其他属性(甚至修改映射的元数据)。我们应该在哪儿创建ISessionFactory,在我们的程序中又如何访问它呢?

    ISessionFactory通常只是被初始化一次,比如说在Application_Start事件里来初始化。 这意味着你不应该在ASP.NET页面中把它作为一个实例变量来持有,而应该放在其他地方。进一步的说, 我们需要使用单例(Singleton)模式,我们才能更容易的在程序中访问 ISessionFactory。 下面的方法就同时解决了两个问题:对ISessionFactory的初始配置与便捷使用。

    private static readonly ISessionFactory sessionFactory;
            static NHibernateHelper()
            {
                sessionFactory = new Configuration().Configure().BuildSessionFactory();
            }
    欢迎访问草根帮【https://www.caogenbang.top】 草根帮带你走向人生巅峰,迎娶白富美!!!
  • 相关阅读:
    WAMP Apache 2.5 配置虚拟主机
    DOM对象
    BOM对象
    JS内置对象
    CSS定位
    CSS浮动和清除
    浏览器兼容性
    垂直居中
    水平居中总结
    长度值
  • 原文地址:https://www.cnblogs.com/koeltp/p/2666843.html
Copyright © 2020-2023  润新知