8

如何使用 SQL Server 2012 为 Nhibernate 编写正确的连接字符串?

我还应该写数据库名称吗?

错误:我收到错误的“初始目录”错误</p>

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>

我从这部分复制连接字符串: 在此处输入图像描述

我也在尝试这个,但没有帮助。

<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的正确配置

4

2 回答 2

7

第一个片段不应该工作,而驱动程序适用于 CE(精简版)。

第二个看起来更好,甚至更适合我。(在此处查看更多信息http://www.connectionstrings.com/sql-server-2012)。最重要的是,正确设置 Provider 名称(在此处查看: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

仔细检查您的 1) SQL 服务器和命名实例是:RAFAL-KOMPUTER\MSSQLSERVER4和 2) 数据库名称是:rafal和 3) 您的登录名对其具有访问权限,这必须有效

于 2013-02-24T05:48:49.693 回答
0

只需替换:SqlServerCeDriver如下SqlClientDriver

代替 :<property name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property>

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

于 2016-06-24T14:10:11.973 回答