Я хотел бы использовать новую функцию VS2010 web.config функцию преобразования для изменения строки подключения в рамках nhibernate конфигурации в моем web.config файле. Соответствующий отрывок - что-то вроде этого:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
<property name="connection.connection_string">(test connection string)</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
...
Я попробовал следующее преобразование без успеха:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.connection_string" xdt:Transform="Replace">(production connection string)</property>
</session-factory>
</hibernate-configuration>
</configuration>
Проблема, кажется, находится в xmlns атрибуте элемента nhibernate-конфигурации.
Каково должно быть корректное преобразование для замены (строка тестового соединения) с (производственная строка подключения) во время развертывания?
Поскольку фабрика сеанса содержит коллекцию дочерних элементов, вам нужно указать ей, какой дочерний элемент заменить, используя локатор Match.
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.connection_string" xdt:Transform="Replace" xdt:Locator="Match(name)>(production connection string)</property>
</session-factory>
</hibernate-configuration>
</configuration>