NHibernate.MappingException:没有持久化程序在程序集中找不到映射文档

NHibernate.MappingException:没有持久化程序在程序集中找不到映射文档,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,很多天以来我一直在做nhibernate。但今天我遇到了一个令人沮丧的问题,即映射异常 <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="IPC.Base.Domains" assembly="IPC"> <class name="MenuItem" table="dbo.COR_MenuItem

很多天以来我一直在做nhibernate。但今天我遇到了一个令人沮丧的问题,即映射异常

    <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="IPC.Base.Domains" assembly="IPC">
  <class name="MenuItem" table="dbo.COR_MenuItem" default-access="property" default-cascade="save-update" default-lazy="true">
    <cache usage="read-only" region="completelyStatic"/>
    <id name="Id" type="System.Int32">
      <generator class="identity" />
    </id>
    <property name="Name" type="System.String" />
    <property name="Order" column="DisplayOrder" />
    <property name="Key" column="KeyChain" />
    <property name="Route" />
    <property name="ActionMethod" />
    <property name="IsHotlink" />
    <many-to-one name="ParentMenuItem" column="ParentMenuItemId" class="MenuItem" cascade="none"/>
    <bag name="MenuItems" table="dbo.COR_MenuItem" cascade="none">
      <cache usage="read-only" region="completelyStatic"/>
      <key column="ParentMenuItemId" />
      <one-to-many class="MenuItem" />
    </bag>
  </class>
</hibernate-mapping>
现在!当我调用以下代码行时,我得到:

public virtual T Get(int id)
        {
            return Session.Get<T>(id);
        }


No persister for: IPC.Base.Domain.MenuItem
Exception Details: NHibernate.MappingException: No persister for: IPC.Base.Domain.MenuItem
public-virtual-T-Get(int-id)
{
返回会话.Get(id);
}
IPC.Base.Domain.MenuItem没有持久化程序
异常详细信息:NHibernate.MappingException:没有IPC.Base.Domain.MenuItem的持久化程序
我已经通过nHibernate日志启用了。以下是日志中的基本详细信息

00:54:40.011 [4] INFO  NHibernate.Cfg.Environment - NHibernate 2.1.0.4000 (2.1.0.4000)
00:54:40.055 [4] INFO  NHibernate.Cfg.Environment - Bytecode provider name : lcg
00:54:40.057 [4] INFO  NHibernate.Cfg.Environment - Using reflection optimizer
00:54:40.682 [4] DEBUG NHibernate.Cfg.Configuration - dialect=NHibernate.Dialect.MsSql2005Dialect
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - connection.driver_class=NHibernate.Driver.SqlClientDriver
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - connection.connection_string=*********************SQL Connection*****************
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - proxyfactory.factory_class=NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - cache.provider_class=NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - cache.use_query_cache=true
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - show_sql=true
00:54:40.684 [4] DEBUG NHibernate.Cfg.Configuration - IPC<-IPC
00:54:40.685 [4] INFO  NHibernate.Cfg.Configuration - Searching for mapped documents in assembly: IPC
00:54:40.689 [4] WARN  NHibernate.Cfg.Configuration - No mapped documents found in assembly: IPC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
00:54:40.691 [4] INFO  NHibernate.Cfg.Configuration - Configured SessionFactory: IPC
00:54:40.691 [4] DEBUG NHibernate.Cfg.Configuration - properties: System.Collections.Generic.Dictionary`2[System.String,System.String]
00:54:45.716 [4] INFO  NHibernate.Cfg.Configuration - checking mappings queue
00:54:45.716 [4] INFO  NHibernate.Cfg.Configuration - processing one-to-many association mappings
00:54:45.717 [4] INFO  NHibernate.Cfg.Configuration - processing one-to-one association property references
00:54:45.717 [4] INFO  NHibernate.Cfg.Configuration - processing foreign key constraints
00:54:45.747 [4] INFO  NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2005Dialect
00:54:40.011[4]信息NHibernate.Cfg.Environment-NHibernate 2.1.0.4000(2.1.0.4000)
00:54:40.055[4]INFO NHibernate.Cfg.Environment-字节码提供程序名称:lcg
00:54:40.057[4]INFO NHibernate.Cfg.Environment-使用反射优化器
00:54:40.682[4]调试NHibernate.Cfg.Configuration-dialogue=NHibernate.dialogue.mssql2005dialogue
00:54:40.683[4]调试NHibernate.Cfg.Configuration-connection.driver\u class=NHibernate.driver.SqlClientDriver
00:54:40.683[4]调试NHibernate.Cfg.Configuration-connection.connection_string=****************************SQL连接*****************
00:54:40.683[4]调试NHibernate.Cfg.Configuration-proxyfactory.factory\u class=NHibernate.ByteCode.LinFu.proxyfactory,NHibernate.ByteCode.LinFu
00:54:40.683[4]调试NHibernate.Cfg.Configuration-cache.provider\u class=NHibernate.Caches.SysCache.SysCacheProvider,NHibernate.Caches.SysCache
00:54:40.683[4]调试NHibernate.Cfg.Configuration-cache.use\u query\u cache=true
00:54:40.683[4]调试NHibernate.Cfg.Configuration-show_sql=true

00:54:40.684[4]DEBUG NHibernate.Cfg.Configuration-IPC可能您忘记将hbm映射设置为DLL的嵌入式资源。

可能您忘记将hbm映射设置为DLL的嵌入式资源。

最后我解决了这个问题!这基本上是一个愚蠢的事情,通常我会做,然后忘记让它回到运行阶段

是的,我和装配问题有关。只有当我尝试构建数据层应用程序时,它并没有在程序集中加载xml文件

解决问题的方法请转到您的 *.hbm.xml文件,然后右键单击并更改该文件的生成选项 嵌入资源

阿尔丽特


非常感谢

我终于解决了这个问题!这基本上是一个愚蠢的事情,通常我会做,然后忘记让它回到运行阶段

是的,我和装配问题有关。只有当我尝试构建数据层应用程序时,它并没有在程序集中加载xml文件

解决问题的方法请转到您的 *.hbm.xml文件,然后右键单击并更改该文件的生成选项 嵌入资源

阿尔丽特


非常感谢

很高兴描述其修复方式-类似于OP回答他自己的问题的方式,但答案仍然缺少实际步骤-即,构建操作->嵌入式资源很高兴描述其修复方式-类似于OP回答他自己的问题的方式,但答案仍然缺少实际步骤-即,构建操作->嵌入式资源
static ISessionFactory CurrentFactory
        {
            get
            {
                if (factory == null)
                {
                    Configuration cfg = new Configuration();
                    if (cfgFile == null)
                        cfg = cfg.Configure();
                    else
                        cfg = cfg.Configure(cfgFile);

                    factory = cfg.BuildSessionFactory();
                }
                return factory;
            }
        }
        public static ISession Create()
        {
            var session = CurrentFactory.OpenSession();
            return session;
        }
public virtual T Get(int id)
        {
            return Session.Get<T>(id);
        }


No persister for: IPC.Base.Domain.MenuItem
Exception Details: NHibernate.MappingException: No persister for: IPC.Base.Domain.MenuItem
00:54:40.011 [4] INFO  NHibernate.Cfg.Environment - NHibernate 2.1.0.4000 (2.1.0.4000)
00:54:40.055 [4] INFO  NHibernate.Cfg.Environment - Bytecode provider name : lcg
00:54:40.057 [4] INFO  NHibernate.Cfg.Environment - Using reflection optimizer
00:54:40.682 [4] DEBUG NHibernate.Cfg.Configuration - dialect=NHibernate.Dialect.MsSql2005Dialect
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - connection.driver_class=NHibernate.Driver.SqlClientDriver
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - connection.connection_string=*********************SQL Connection*****************
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - proxyfactory.factory_class=NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - cache.provider_class=NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - cache.use_query_cache=true
00:54:40.683 [4] DEBUG NHibernate.Cfg.Configuration - show_sql=true
00:54:40.684 [4] DEBUG NHibernate.Cfg.Configuration - IPC<-IPC
00:54:40.685 [4] INFO  NHibernate.Cfg.Configuration - Searching for mapped documents in assembly: IPC
00:54:40.689 [4] WARN  NHibernate.Cfg.Configuration - No mapped documents found in assembly: IPC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
00:54:40.691 [4] INFO  NHibernate.Cfg.Configuration - Configured SessionFactory: IPC
00:54:40.691 [4] DEBUG NHibernate.Cfg.Configuration - properties: System.Collections.Generic.Dictionary`2[System.String,System.String]
00:54:45.716 [4] INFO  NHibernate.Cfg.Configuration - checking mappings queue
00:54:45.716 [4] INFO  NHibernate.Cfg.Configuration - processing one-to-many association mappings
00:54:45.717 [4] INFO  NHibernate.Cfg.Configuration - processing one-to-one association property references
00:54:45.717 [4] INFO  NHibernate.Cfg.Configuration - processing foreign key constraints
00:54:45.747 [4] INFO  NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2005Dialect