Конфигурация NHibernate в web.config - используйте существующую строку соединения

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

Ответ 1

Вы можете использовать элемент 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";             
});

Ответ 2

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

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