配置NHibernate hibernate.cfg.xml文件以获得更多连接字符串

Dan*_*ick 2 nhibernate connection-string hibernate.cfg.xml

我的客户询问是否可以从ac#app从"CURRENT"数据库切换到TEST数据库或DEV数据库.一次只能激活一个.在菜单文件中,她选择DEV或TEST数据库.

如何配置hibernate.cfg.xml文件以获得更多连接字符串,如app.config.

<name="CURRENT" connectionString='User Id=u1;Data Source=CURRENT;Password=...' />
<name="DEV" connectionString='User Id=u1;Data Source=DEV;Password=...' />
<name="TEST" connectionString='User Id=u1;Data Source=TEST;Password=...' />
Run Code Online (Sandbox Code Playgroud)

roy*_*key 5

更新:现在可以在NuGetGitHub上使用

这是我有时想要的功能.它永远不会出现,所以随着时间的推移,我创建了一个名为NHibernate X-Factories的扩展方法.您所要做的就是在一个.cfg.xml中创建多个session-factory元素并命名它们.然后,您可以在配置sessionFactory时按名称调用它们.

nhibernate.cfg.xml

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2-x-factories">

    <session-factory name="Development">
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">Server=dsql01;DataBase=dbDev;uid=nhDeveloper;pwd=pass1234</property>

        <property name="show_sql">true</property>

        <mapping assembly="DataLayer" />
    </session-factory>

    <session-factory name="Production">
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">Server=psql02;DataBase=dbDev;uid=nhDeveloper;pwd=pass5678</property>

        <property name="show_sql">false</property>

        <mapping assembly="DataLayer" />
    </session-factory>

</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

C#

NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();
config.Configure("~/nhibernate.cfg.xml", "Development").BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请访问https://www.github.com/roydukkey/NHibernate-X-Factories/.