NHibernate.MappingException-故障排除检查表(无持久性)

NHibernate.MappingException-故障排除检查表(无持久性),nhibernate,debugging,nhibernate-mapping,Nhibernate,Debugging,Nhibernate Mapping,以下是一份起始列表: 如果hbm是手工生成的,它是嵌入式资源吗? 如果使用FNH,是否通过PersistenceSpecification测试? 如果不使用FNH,是否可以保存并加载持久化类? 使用Ayende's 我相信你们中的很多人都在某个时候得到过这个。但是当你知道你的地图设置正确时,你有没有得到它 在我开始使用新的存储库设计之后,我开始出现这个异常,但只有在一个场景中!PersistenceSpecification测试通过,所有使用SQLite的存储库方法也通过了测试 导致异常的场景是

以下是一份起始列表:

如果hbm是手工生成的,它是嵌入式资源吗? 如果使用FNH,是否通过PersistenceSpecification测试? 如果不使用FNH,是否可以保存并加载持久化类? 使用Ayende's 我相信你们中的很多人都在某个时候得到过这个。但是当你知道你的地图设置正确时,你有没有得到它

在我开始使用新的存储库设计之后,我开始出现这个异常,但只有在一个场景中!PersistenceSpecification测试通过,所有使用SQLite的存储库方法也通过了测试

导致异常的场景是,来自不同数据库的遗留项目转换为绿地系统。遗留系统来自不同的数据库,并且有自己的会话工厂,这应该是无关的,因为错误是在检索以前未转换的项目并存储在内存中之后出现的

当例程试图将这些未转换的项目保存到新数据库中时,抛出异常,下面是完整的堆栈跟踪

关于如何建立故障排除检查表并解决此问题,您有何想法

干杯, 贝里尔

==异常跟踪=====

failed: NHibernate.MappingException : No persister for: Smack.ConstructionAdmin.Domain.Model.Projects.Project
at NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName)
at NHibernate.Impl.SessionImpl.GetEntityPersister(String entityName, Object obj)
at NHibernate.Engine.ForeignKeys.IsTransient(String entityName, Object entity, Nullable`1 assumed, ISessionImplementor session)
at NHibernate.Event.Default.AbstractSaveEventListener.GetEntityState(Object entity, String entityName, EntityEntry entry, ISessionImplementor source)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj)
NHibernate\Repository\FabioNHibRepository.cs(46,0): at Smack.Core.Data.NHibernate.Repository.FabioNHibRepository`1.Add(T item)
LegacyConversion\LegacyBatchUpdater.cs(20,0): at Smack.ConstructionAdmin.Data.LegacyConversion.LegacyBatchUpdater.ConvertOpenLegacyProjects(ILegacyProjectDao legacyProjectDao, IProjectRepository greenProjectRepository)
Data\Brownfield\ProjectBatchUpdate_SQLiteTests.cs(19,0): at Smack.ConstructionAdmin.Tests.Data.Brownfield.ProjectBatchUpdate_SQLiteTests.Test()

这里的问题是我无意中将相同的会话上下文绑定到遗留和绿地db会话工厂,首先绑定到绿地,然后绑定到遗留。

这里的问题是我无意中将相同的会话上下文绑定到遗留和绿地db会话工厂,首先是绿地,然后是遗产