配置持久层期间发生异常

时间:2010-03-09 07:28:11

标签: c# .net nhibernate exception-handling

我正在使用asp.net中的MySql在Nhibernate中进行一个项目。在执行代码时我得到了像

这样的错误
  

在配置持久层

期间发生异常

在下面一行

ISessionFactory factory = new NHibernate.Cfg.Configuration().Configure).BuildSessionFactory();

所以,让我帮助解决错误。

这是我的配置文件

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <!-- an ISessionFactory instance -->
  <session-factory>
    <!-- properties -->
    <property name="connection.provider">
      NHibernate.Connection.DriverConnectionProvider
    </property>
    <property name="connection.driver_class"> 
      NHibernate.Driver.MySqlDataDriver
    </property>
    <property name="connection.connection_string">
      Server=localhost;Database=hrms;User ID=test;Password=test;
    </property>
    <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
    <property name="show_mysql">true</property>
    <!-- mapping files -->
    <mapping resource="WebApp1.Job.hbm.xml" assembly="WebApp1" />
  </session-factory>
</hibernate-configuration>

3 个答案:

答案 0 :(得分:2)

配置不完整?尝试手动配置初始化,如下所示:

NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.SetProperty("dialect", "NHibernate.Dialect.MySQLDialect");
cfg.SetProperty("connection.driver_class", "NHibernate.Driver.MySqlDataDriver");
cfg.SetProperty("connection.connection_string", "Server=YourServer;Database=YourDatabase;User ID=YourId;Password=YourPass;CharSet=utf8");
cfg.SetProperty("proxyfactory.factory_class", "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");  
cfg.AddAssembly("Your.Assembly.Name");  
ISessionFactory sessionFactory = cfg.BuildSessionFactory();

如果一切正常,请根据需要将其移至XML。

答案 1 :(得分:1)

请阅读正在抛出的内部异常,您很可能知道原因。根据我的经验,它可以像代码在bin / debug中查找hibernate.cfg.xml文件一样简单,但无法找到它。

答案 2 :(得分:0)

我有类似的问题。问题是我在Web.config中使用的:

<section name="nhibernate" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
<nhibernate xmlns="urn:nhibernate-configuration-2.2">
    .
    .
    .
</nhibernate>

而不是:

<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    .
    .
    .
</hibernate-configuration>