Как мне управлять NHibernate и Asp.NET MVC ConnectionStrings для отдельных проектов - PullRequest
1 голос
/ 18 августа 2010

Я хотел бы получить мнение о наилучшем способе управления следующим, пожалуйста.У меня есть проект приложения MVC, а также проект DomainModel.Отображения NHibernate и hibernate.cfg.xml находятся в проекте DomainModel, на который ссылается приложение MVC.Обычно это будет работать нормально, так как весь мой доступ к данным будет проходить через соединение NHibernate.

Проблема в том, что я использую поставщика Sql Membership, поэтому мне нужен доступ к строке подключения непосредственно из Asp.net MVC.

Вопрос 1

Кто-нибудь имел эту проблему раньше и что было бы самым чистым решением?Я хочу убедиться, что у меня есть только одно место, в котором хранится строка подключения.

Вопрос 2

Как настроить NHibernate с двумя отдельными подключениями, для отладки и выпуска скод

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

В настоящее время единственным допустимым свойством является connection.connection_string.

Как вы могли бы обойти это?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Возможно, перемещение вашей информации о конфигурации 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>
0 голосов
/ 20 августа 2010

Я установил мои соединения в NH в коде, используя FNH. Это может быть не вариант для вас, но если это так, эта проблема исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...