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

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

2 ответов


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

вам нужно использовать в комплектации:

<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";             
});

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

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