nhibernate - 配置 NHibernate hibernate.cfg.xml 文件以拥有更多连接字符串

标签 nhibernate connection-string hibernate.cfg.xml

我的客户询问是否可以从 C# 应用程序的“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=...' />

最佳答案

更新:现已在NuGet上提供和 GitHub

这是我一直想要的功能。但它从未出现过,所以随着时间的推移,我创建了一个名为 NHibernate X-Factories 的扩展方法。您所要做的就是在一个 .cfg.xml 中创建多个 session 工厂元素并命名它们。然后,您可以在配置 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>

C#

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

查看更多信息 https://www.github.com/roydukkey/NHibernate-X-Factories/ .

关于nhibernate - 配置 NHibernate hibernate.cfg.xml 文件以拥有更多连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450300/

相关文章:

nhibernate - 如果它是可选的,为什么我需要为我的投影设置别名?

java - 逆向工程 JDBC Oracle 连接字符串

.net - SQL Server 的两个管理员帐户

c# - 如何访问连接字符串并连接到数据库

java - 我是否正确配置了 Hibernate hibernate.cfg.xml 文件?

java - hibernate配置文件和SessionFactory

使用 Nhibernate 的不带参数的 Oracle 存储过程

nhibernate - FluentNHibernate 和 VARCHAR 列

c# - 如何通过一次调用 Save 在 NHibernate 中更新一行并自动插入一个新行?

java - Hibernate 工具 - 无法添加配置 - dom4j 连接超时 -