2013-02-23 6 views
8

Как написать правильную строку соединения для Nhibernate с помощью SQL Server 2012?Неверная строка подключения NHibernate 3.3

Должен ли я написать также имя базы данных?

Ошибка: я получаю сообщение об ошибке с неправильным «начальным каталогом»

Wrong Строка подключения для NHibernate (скопировать эту строку соединения с моим сервера):

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MsSqlCeDialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property> 
    <property name="connection.connection_string">Data Source=RAFAL-KOMPUTER\MSSQLSERVER4;Initial Catalog=rafal;Integrated Security=True</property> 
    <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

скопировать строку соединения из этой части : enter image description here

Я также пытаюсь это сделать, но не помогает.

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="connection.connection_string">Data Source=RAFAL-KOMPUTER\MSSQLSERVER4;Initial Catalog=rafal;Integrated Security=True</property> 

Я не знаю, насколько правильно настроить для SQL Server 2012

ответ

7

Первый фрагмент не должен работать, в то время как драйвер для CE (Compact Edition).

Второй выглядит лучше, и даже больше он работает для меня. (см. здесь http://www.connectionstrings.com/sql-server-2012). Самое главное - иметь правильные настройки имени Провайдера (здесь: https://stackoverflow.com/a/8150792/315850). Попробуйте этот скорректированный фрагмент (просто чтобы быть уверенным, что все части установлены правильно)

<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
<!-- to profit from features in 2012, use its dialect --> 
<property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property> 
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
<!-- the simplest connection string --> 
<property name="connection.connection_string">Data Source=RAFAL-KOMPUTER\MSSQLSERVER4;Database=rafal;Trusted_Connection=True;</property> 

Мы должны быть уверены, что правильный драйвер используется (не CE или какой-либо другой, то NHibernate.Driver.SqlClientDriver что означает System.Data.SqlClient)

Double Убедитесь, что ваш 1) SQL-сервер и имя экземпляр: RAFAL-KOMPUTER\MSSQLSERVER4 и 2) имя базы данных: rafal и 3) ваш Логин имеет право доступа к нему, то это должно работать

+0

Теперь я получаю эту ошибку -> Произошла ошибка сети связанных или экземпляра конкретных при установлении соединения с SQL Server. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: поставщик общей памяти, ошибка: 40 - не удалось открыть подключение к SQL Server) –

+0

Как я уже говорил, с вашими вторыми настройками я смог запустить его! Так что проблема в другом месте. Возможно, служба Browser не работает, возможно, TCP не включен .... Другие слова. Конфигурация NHibernate сейчас правильна (я бы сказал), и проблема в другом месте. Я предлагаю, попробуйте найти здесь на SO «Связанная с сетью ...». Очень скоро вы должны получить некоторые подсказки –

+0

http://stackoverflow.com/questions/1391503/a-network-related-or-instance-specific -ошибка-произошло, в то время-установления-а-Conne –

0

просто заменить: SqlServerCeDriver на SqlClientDriver, как показано ниже:

Заменить: <property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>

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

Смежные вопросы