我正在尝试将我的项目从Nhibernate 1.0升级到3.1,我遇到了一个错误,说明如下: - NHibernate.MappingException:没有持久性: 位于d:\ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Impl \ SessionFactoryImpl.cs中的NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName):第470行 at NHibernate.Impl.SessionImpl.GetEntityPersister(String entityName,Object obj)在d:\ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Impl \ SessionImpl.cs:第2728行
我在代码中的Session.save()上遇到此错误。
以编程方式编写配置,并且.hbm.xml文件的构建操作是嵌入式源。配置已正确构建,但session.save()正在抛出错误。
答案 0 :(得分:1)
解决了这个问题。问题出在IloggingInterceptor上。如果会话是使用拦截器创建的,则会抛出问题。对于没有拦截器的正常会话,代码工作正常。现在如果有人可以帮助我实现IloggingInteceptor中的方法,OnPrepareStatement,GetEntity等方法,那将是很好的,谢谢你的所有答案
答案 1 :(得分:0)
当您调用Session.save()时,这将是您第一次知道是否存在映射问题。这里信息不足,但检查您的命名空间。如果有,请使用Reflector确保在映射文件中为域对象引用正确的命名空间。
关于信息:因为我认为这是一个命名空间问题,这是一个C#或VB项目(我说这是因为你必须小心两种类型之间的命名空间。这是“陷阱”之一)?你能告诉我们你NHibernate配置的片段吗?自NHibernate 1以来发生了很多变化,仔细检查以确保您使用最新的约定?