2009-11-17 9 views
10

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

ответ

16

Элемент connection.connection_string_name можно использовать в конфигурации NHibernate. Посмотрите here. Тогда 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";    
}); 
+0

идеальных ... Спасибо !! –

+0

Я хочу, чтобы вы процитировали решение, чтобы дать мне подсказки, поскольку страница больше не найдена :( –

+0

http://community.devpinoy.org/blogs/bonskijr/archive/2007/04/08/using-connectionstring-section-in -nhibernate.aspx – Sly

1

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

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