4

我有一个问题做无状态会话更新,我想 想知道是否有人看到过这样的事情。 (NHibernate 3.1)。NHibernate.MappingException:没有persister

我基本上做以下几点:

SomeEntity e = statelessSession.Get<SomeEntity>(id); 
e.SomeProperty = "a new value"; 
statelessSession.Update(e); 

,我收到以下错误:

NHibernate.MappingException: No persister for: 
    Castle.Proxies.SomeEntityProxy 
    at NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String 
    entityName) 
    at NHibernate.Impl.StatelessSessionImpl.GetEntityPersister(String 
    entityName, Object obj) 
    at NHibernate.Impl.StatelessSessionImpl.Update(String entityName, 
    Object entity) 
    at NHibernate.Impl.StatelessSessionImpl.Update(Object entity) 

的映射 -

我已经通过阶梯调试器,并可以看到 statelessSession.Get(id)正在返回给我一个代理。这是 是否正确?

任何人都有什么想法是什么问题?请分享您的观点和建议。

+0

请提供您正尝试更新的实体的映射吗? – mickfold 2013-03-09 09:58:01

+0

我已经添加了映射。 – 2013-03-09 10:11:34

+0

我创建了一个问题:https://nhibernate.jira.com/browse/NH-4040 – hazzik 2017-06-24 06:03:39

回答

1

我做了一个测试项目,就像您在问题中概述的那样,但无法重现该问题。我能够重现错误的唯一情形是:

  1. 映射的位置初始化会话工厂时没有被指定,即你缺少

    Fluently.Configure() 
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<SomeEntity>()); 
    
  2. 之一SomeEntity的属性已被标记为lazy="no-proxy"。更多信息可以在here找到。

相关问题