2010-10-06 3 views
1

У меня возникла проблема, когда наши приложения используют реализации NHibernate, где некоторые более старые части все еще используют ADO. Проблема, с которой я сталкиваюсь, заключается в том, что для работы ADO требуется указать провайдера.Строка соединения NHibernate, содержащая провайдера

Provider=SQLOLEDB.1;Persist Security Info=False;User ID=XXXXX;Initial Catalog=XXXX;Data Source=XX.XXX.XX.XX;Password=XXXXX; 

Как так, как всегда, когда я настроить NHibernate использовать ту же строку соединения я получаю следующее сообщение об ошибке:

Keyword not supported: 'provider'. 

Если я удалить поставщика из ConnectionString все отлично подходит для NHibernate. Теперь я могу просто использовать две строки подключения, но я не хочу этого делать.

Есть ли способ достичь этого без необходимости создавать две соединительные линии или исправить какой-либо недостаток в NHibernate?

Приветствия,

F.B. десять Кейт

+0

Поскольку я не указывал, старый старый материал использует ADODB.Connection. Если бы он использовал SqlConnection, у меня не было бы этой проблемы, как бы я не мог просто изменить соединение из-за разных способов обработки транзакций –

ответ

3

Хорошо, я понял, что я мог бы изменить NHibernate driver_class, чтобы все заработало, изменил его:

<property name="connection.driver_class">NHibernate.Driver.OleDbDriver</property> 

из

<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 

Не уверен, что о каких-либо хитов производительности я мог бы принять от этого, но по крайней мере он функционирует так.