我在使用无状态 session 进行更新时遇到问题,我
想知道是否有人见过这样的东西。 (NHibernate 3.1)。
我基本上是在做以下事情:
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)
映射——
class SomeEntityMap : ClassMap<SomeEntity>
{
public SomeEntityMap()
{
Table("Some_Entity");
Id(x => x.ID).Column("ID");
Map(x => x.Name).Column("NAME");
}
我已经进入调试器,可以看到
statelessSession.Get(id) 返回给我一个代理。这是
正确的?
有人知道有什么问题吗?请分享您的看法和建议。
最佳答案
正如您在问题中概述的那样,我做了一个测试项目,但无法重现该问题。我能够重现错误的唯一场景是:
Fluently.Configure()
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<SomeEntity>());
SomeEntity
的属性之一已被标记为 lazy="no-proxy"
.更多信息可咨询here . 关于hibernate - NHibernate.MappingException : No persister,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15309369/