错误的连接字符串NHibernate 3.3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误的连接字符串NHibernate 3.3相关的知识,希望对你有一定的参考价值。

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

我还要写数据库名吗?

错误:错误的“初始目录”出错

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-KOMPUTERMSSQLSERVER4;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-KOMPUTERMSSQLSERVER4;Initial Catalog=rafal;Integrated Security=True</property>

我不知道如何正确配置SQL Server 2012

答案

第一个代码段不起作用,而驱动程序适用于CE(精简版)。

第二个看起来更好,甚至更多它对我有用。 (在这里查看更多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-KOMPUTERMSSQLSERVER4;Database=rafal;Trusted_Connection=True;</property>

我们必须确保使用正确的驱动程序(不是CE或任何其他NHibernate.Driver.SqlClientDriver,这意味着System.Data.SqlClient

仔细检查你的1)SQL服务器和命名实例是:RAFAL-KOMPUTERMSSQLSERVER4和2)数据库名称是:rafal和3)你的登录有访问权限,这必须工作

另一答案

只需用SqlServerCeDriver替换:SqlClientDriver如下:

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

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

以上是关于错误的连接字符串NHibernate 3.3的主要内容,如果未能解决你的问题,请参考以下文章

NHibernate 通过代码 ManyToOne 与 CompositeIdentity 进行映射

将旧项目从 NHibernate 1.2 升级到 3.3

NHibernate / MySQL 字符串连接

使用 nhibernate 跨数据库连接

NHibernate 和数据库连接故障转移?

Fluent Nhibernate 与 MySQL 的连接字符串