设置属性hibernate.dialect错误消息

时间:2010-12-28 09:46:17

标签: nhibernate asp.net-mvc-2 asp.net-mvc-3

配置mvc3和Nhibernate时出现以下错误。任何人都可以指导我,我错过了。

  方言未设定。设置属性hibernate.dialect。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:NHibernate.HibernateException:未设置方言。设置属性hibernate.dialect。

来源错误:

第16行:{ 第17行:NHibernate.Cfg.Configuration配置= new NHibernate.Cfg.Configuration(); 第18行:configuration.AddAssembly(System.Reflection.Assembly.GetExecutingAssembly()); 第19行:sessionFactory = configuration.BuildSessionFactory(); 第20行:}


我的web.config如下:

<configSections>
<section name="cachingConfiguration"type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings,Microsoft.Practices.EnterpriseLibrary.Caching"/>
<section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
<section name="hibernate-configuration"type="NHibernate.Cfg.ConfigurationSectionHandler,
     

NHibernate“/&gt;

  <appSettings>
    <add key="BusinessObjectAssemblies" value="Keeper.API"></add>
    <add key="ConnectionString" value="Server=localhost\SQLSERVER2005;Database=KeeperDev;User=test;Pwd=test;"></add>
    <add key="ClientValidationEnabled" value="true"/> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
  </appSettings>



<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.connection_string">Server=localhost\SQLServer2005;Database=KeeperDev;User=test;Pwd=test;</property>
      <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    </session-factory>
  </hibernate-configuration>

2 个答案:

答案 0 :(得分:3)

从您的连接字符串中,您似乎正在连接到2k5服务器。如果是,according to the NHibernate docs,则应将方言设置为NHibernate.Dialect.MsSql2005Dialect

这是来自文档的示例配置:

<session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Server=(local);Initial Catalog=dbname;User Id=user;Password=********</property>
</session-factory>

您可以尝试将方言设置为NHibernate.Dialect.MsSql2005Dialect

答案 1 :(得分:0)

我犯了一个简单而愚蠢的错误。我没有包含正确版本的NHibernate。

感谢@Marjin回复。