[英]Reason for MappingException: No persister for: MyClassProxy
在SaveOrUpdate
调用中,我得到了MappingException No persister for: MyClassProxy
。
奇怪的是,我能够用代码插入新行,但是如果该行存在并且存储库尝试对其进行更新,则会出现此异常。
在搜索并阅读了很多有关此异常的问题之后,这些问题没有帮助我找到原因,我会问自己:如果映射可用于读取/插入数据,那么可能导致此异常的原因是什么?
有关我的案件的更多信息:
ClassMapping
和一个带有区分ClassMapping
的SubclassMapping
组成 我有同样的问题。 基本上,我实现了NHibernate.EmptyInterceptor以支持INotifyPropertyChanged通知。
但是我在线使用的示例错过了1个关键步骤……它没有覆盖GetEntityName方法,因此代理将被“转换”回实际对象。
public override string GetEntityName(object entity)
{
Type type = entity.GetType();
if (type.FullName.StartsWith("Castle.Proxies") &&
type.FullName.EndsWith("Proxy"))
{
return type.BaseType.FullName;
}
return base.GetEntityName(entity);
}
源答案: 持久存在与NH Session不相关的Castle DynamicProxy
注意:该示例使用了“ Castle.Proxies”,我没有使用它,而是从if块中删除了此条件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.