Конфигурация NHibernate в web.config - использовать существующую строку подключения - PullRequest
10 голосов
/ 17 ноября 2009

Моя конфигурация NHibernate успешно настроена в моем файле web.config. Однако я также использую членство в ASP.NET, которое требует определения строки подключения в элементе connectionStrings. Есть ли способ заставить мою конфигурацию NHibernate использовать это значение, чтобы мне не нужно было определять строку подключения дважды?

Ответы [ 2 ]

17 голосов
/ 17 ноября 2009

Вы можете использовать элемент connection.connection_string_name в конфигурации NHibernate. Посмотрите здесь . Затем NHibernate получит строку подключения по имени из файла web.config

Вам необходимо использовать атрибут connection.connection_string_name в конфигурации :

<connectionStrings>
    <add name="default" connectionString="server=(local);etc." />
</connectionStrings>

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="connection.connection_string_name">default</property>
    </session-factory>
</hibernate-configuration>

При быстрой конфигурации вы можете сделать следующее

ConnectionString(c=>c.FromConnectionStringWithKey("YourConnStrName"))

С помощью API конфигурации NHibernate вы можете делать следующее:

var cfg = new Configuration();
cfg.DataBaseIntegration(db =>
{
    db.ConnectionStringName = "default";             
});
1 голос
/ 14 мая 2010

Просто, чтобы добавить к хитрому ответу, вы можете сделать это с помощью FluentNHibernate следующим образом (в вашем свободном конфиге):

.ConnectionString(c=>c.FromConnectionStringWithKey("con_development"))
...