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找到。

相關問題