Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# nhibernate配置引发异常_C#_Nhibernate_Exception - Fatal编程技术网

C# nhibernate配置引发异常

C# nhibernate配置引发异常,c#,nhibernate,exception,C#,Nhibernate,Exception,在配置(持久层)nhibernate的过程中,我遇到了一个异常。消息说nhibernate找不到配置文件hibernate.cfg.xml。但我检查了我的文件,它总是被设置为复制到输出。我将映射和持久类存储在单独的程序集中。但是控制台项目和类库项目的outpt文件夹中都有配置文件 配置文件 <?xml version="1.0" encoding="utf-8" ?> <hibernate-configuration xmlns="urn:nhibernate-configur

在配置(持久层)nhibernate的过程中,我遇到了一个异常。消息说nhibernate找不到配置文件
hibernate.cfg.xml
。但我检查了我的文件,它总是被设置为复制到输出。我将映射和持久类存储在单独的程序集中。但是控制台项目和类库项目的outpt文件夹中都有配置文件

配置文件

<?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.MsSql2008Dialect
    </property>
    <property name="connection.driver_class">
      NHibernate.Driver.SqlClientDriver
    </property>
    <property name="connection.connection_string">
      Data Source=(local); Initial Catalog=KrossThoughtDB;
      Integrated Security=SSPI
    </property>
    <property name="show_sql">
      true
    </property>   
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.User.hbm.xml"   assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Blog.hbm.xml" assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Post.hbm.xml" assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Category.hbm.xml" assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Feedback.hbm.xml" assembly="MyApp.Domain" />
  </session-factory>
</hibernate-configuration>
private static void Main(String[] args)
{
    // the next line exception's thrown
    using(var session = SessionHelper.GetCurrentSession())
    using(var tx = session.BeginTransaction())
    {
        // some actions...
        tx.Commit();
    }
}
然后在示例控制台应用程序中调用此代码

客户端代码

<?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.MsSql2008Dialect
    </property>
    <property name="connection.driver_class">
      NHibernate.Driver.SqlClientDriver
    </property>
    <property name="connection.connection_string">
      Data Source=(local); Initial Catalog=KrossThoughtDB;
      Integrated Security=SSPI
    </property>
    <property name="show_sql">
      true
    </property>   
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.User.hbm.xml"   assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Blog.hbm.xml" assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Post.hbm.xml" assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Category.hbm.xml" assembly="MyApp.Domain" />
    <mapping resource="MyApp.Domain.Model.Entities.Mappings.Feedback.hbm.xml" assembly="MyApp.Domain" />
  </session-factory>
</hibernate-configuration>
private static void Main(String[] args)
{
    // the next line exception's thrown
    using(var session = SessionHelper.GetCurrentSession())
    using(var tx = session.BeginTransaction())
    {
        // some actions...
        tx.Commit();
    }
}

救命啊

尝试将hibernate.cfg.xml的属性“复制到输出目录”设置为“始终复制”。

确保存在以下*.config文件结构:

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

....

如前所述,该选项已设置。构建操作:内容。复制到输出:始终复制。所有映射都被视为嵌入式资源。也许我有一些打字错误,但我看不出来。真的。对不起,我没有注意到。