代码之家  ›  专栏  ›  技术社区  ›  Matt

如何管理NHibernate和Asp.NET 独立项目的MVC连接字符串

  •  1
  • Matt  · 技术社区  · 14 年前

    我想得到最好的办法来管理以下意见请。我有一个MVC应用程序项目,还有一个DomainModel项目。NHibernate映射与 hibernate.cfg.xml 在MVC应用程序中引用的DomainModel项目中。这通常可以正常工作,因为我的所有数据访问都将通过NHibernate连接。

    问题1

    以前有人遇到过这个问题吗?最干净的解决方案是什么?我想确保只有一个地方存储connectionstring。

    问题2

    我如何配置NHibernate与两个独立的连接,调试和发布的代码

    #if DEBUG
     connection = configuration.Properties[/*DEBUGconnectionstring-hibernate.cfg.xml*/]
    #else
     connection = configuration.Properties[/*RELEASEconnectionstring-hibernate.cfg.xml*/]
    #endif 
    

    当前唯一有效的属性是connection.connection_string.

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  2
  •   NetSide    14 年前

    可能会将nhibernate配置信息移动到项目配置文件中(app.config 或者web.config)解决你的问题。例如,我在一个解决方案中有两个项目。其中一个是WCF服务,另一个是win服务。我有以下连接信息分别每个项目配置文件。

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory>
          <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
          <property name="default_schema">DUMMY</property>
          <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
          <property name="connection.connection_string">Data Source=SRV_OLDEV;User Id=USRdummy;Password=USRdummy;</property>
    
          <property name="proxyfactory.factory_class">
            NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu
          </property>
          <property name="show_sql">true</property>
        </session-factory>
      </hibernate-configuration>
    
        2
  •  0
  •   Corey Coogan    14 年前

    我使用FNH在代码中设置与NH的连接。这可能不是你的选择,但如果是,这个问题就会消失。