在SaveOrUpdate
来电中,我收到MappingException No persister for: MyClassProxy
。
奇怪的是,我能够使用代码插入新行,但如果该行存在且存储库尝试更新它,我将收到此异常。
在搜索并阅读了很多关于此异常的问题之后,这并没有帮助我找到原因,我会问自己:如果映射适用于读取/可能导致此异常的可能原因插入数据?
有关我案例的更多信息:
ClassMapping
和SubclassMapping
与鉴别器答案 0 :(得分:1)
我有同样的问题。基本上我实现了一个NHibernate.EmptyInterceptor来支持INotifyPropertyChanged通知。
但我在网上使用的示例错过了一个关键步骤...它没有覆盖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);
}
来源回答:Persisting a Castle DynamicProxy that's not associated with a NH Session
注意:使用的示例" Castle.Proxies"我没有使用它并从if块中删除了这个条件