2

我无法使用 NHibernate 连接到 SQL Server 2012 Express。

我得到一个

不支持关键字:“服务器”。

例外。使用数据源代替服务器时,我得到了同样的异常。我最近将数据库从 MySql 切换到 SQL Server Express。我在执行所有 CRUD 时都没有问题。MySql 中的操作。

我的hibernate.cfg.xml文件如下:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
     <session-factory>    
          <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          <property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
          <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>    
          <property name="connection.connection_string">
                                              "Server=MyServer;
                                               Initial Catalog =MyDB;
                                               User Id=MyUserID;
                                               Password=MyPW;
                                               Convert Zero Datetime=True"

          </property>
          <property name="show_sql">true</property>
     </session-factory>
</hibernate-configuration> 

非常感谢任何帮助。

4

2 回答 2

1

也许Convert Zero Datetime不支持?否则,请查看 Hbm2DDLKeywords。您可能有一些带有 SQL Express 保留关键字的类。

于 2013-09-25T19:52:55.213 回答
0

Convert Zero Datetime只是 MySQL 连接字符串参数。如果我将它添加到 SQL Server 连接字符串,我会得到“不支持关键字:'转换零日期时间'”,我不确定为什么您的错误消息说服务器不受支持,但我认为Convert Zero Datetime从连接字符串中删除将修复问题。

连接字符串参数有别名,我认为您可以混合搭配,但为了记录,我的 SQL Server 连接字符串通常采用以下形式

Server=myserver;Database=mydatabase;Uid=myuser;Pwd=mysecretpassword;
于 2013-09-25T20:39:15.453 回答