Asp.net mvc 4 NHibernate 3.3是否与SQL Server 2012 Express配合使用?

Asp.net mvc 4 NHibernate 3.3是否与SQL Server 2012 Express配合使用?,asp.net-mvc-4,nhibernate,visual-studio-2012,nhibernate-mapping,sql-server-express,Asp.net Mvc 4,Nhibernate,Visual Studio 2012,Nhibernate Mapping,Sql Server Express,我无法使用NHibernate连接到SQL Server 2012 Express 我得到一份工作 不支持关键字:“服务器” 例外。当使用数据源代替服务器时,我会遇到同样的异常。我最近将数据库从MySql切换到SQLServerExpress。我在执行所有CRUD时没有任何问题。MySql中的操作 我的hibernate.cfg.xml文件如下: <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">

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

我得到一份工作

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

例外。当使用数据源代替服务器时,我会遇到同样的异常。我最近将数据库从MySql切换到SQLServerExpress。我在执行所有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> 

NHibernate.Connection.DriverConnectionProvider
NHibernate.dial.MsSql2012Dialect
NHibernate.Driver.SqlClientDriver
“服务器=MyServer;
初始目录=MyDB;
用户Id=MyUserID;
密码=MyPW;
转换为零日期时间=真”
真的

非常感谢您的帮助。

可能不支持
转换零日期时间
?否则,请查看HBM2DDL关键字。您可能有一些带有SQL Express保留关键字的类。

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

连接字符串参数有别名,我认为您可以混合和匹配,但作为记录,我的SQL Server连接字符串的形式通常是

Server=myserver;Database=mydatabase;Uid=myuser;Pwd=mysecretpassword;

更新:当我升级到NHibernate 3.3时,MsSql2012Dialct被识别,但是当编译到达服务器时,会抛出相同的错误。忽略前面的注释。更新应用于问题本身。答案位于connection.connection\u字符串标记中指定信息周围的错误“”中。我还需要删除hbm文件中声明的模式。感谢您的帮助。转换零日期时间不会影响行为。请您解释一下“Hbm2DDLKeywords”和“带有SQL Express保留关键字的类”好吗?每个数据库提供程序都有某些保留关键字。SQL Express可能包含MySQL或SQL CE()中未使用的关键字。您可能有一个实体,其属性使用以下关键字之一作为名称(例如:Desc、User或value)。您可以将Hbm2DDLKeywords.keywords属性设置为转义关键字。当NHibernate生成SQL时,它会在关键字周围创建反勾字符或括号。如果这是一个非生产环境,请尝试将
自动报价
添加到会话工厂配置中,并查看它是否解决了问题。其他有效值为
关键字