NHibernate InvalidProxyTypeException

NHibernate InvalidProxyTypeException,nhibernate,Nhibernate,当验证我的Fluent映射时,我得到了这个NHhibernate FluentNHibernate.Cfg.FluentConfigurationException :无效或不完整的文件 创建时使用了配置 会期工厂。检查 潜在原因收集,以及 有关详细信息,请参阅InnerException ----> NHibernate.InvalidProxy类型异常: 以下类型不能用作 代理:域。地址:方法 平等应该是“公共的/受保护的” 虚拟“或”受保护的内部 “虚拟”域。人员:方法 平等应该是“公共的

当验证我的Fluent映射时,我得到了这个NHhibernate

FluentNHibernate.Cfg.FluentConfigurationException :无效或不完整的文件 创建时使用了配置 会期工厂。检查 潜在原因收集,以及 有关详细信息,请参阅InnerException

----> NHibernate.InvalidProxy类型异常: 以下类型不能用作 代理:域。地址:方法 平等应该是“公共的/受保护的” 虚拟“或”受保护的内部 “虚拟”域。人员:方法 平等应该是“公共的/受保护的” 虚拟“或”受保护的内部 虚拟“拆卸”: System.NullReferenceException:对象 引用未设置为的实例 反对

我试图使我的Equals方法虚拟化,但是我最终得到了这个错误

System.ApplicationException:用于 应为属性“AddressPerson” 类型为的“Domain.Person” “Domain.Person”但得到 “PersonProxy5ce0cdda11ac4829a4f038c9f7944213” 类型为“Domain.Person”

我很困惑有人知道这里到底发生了什么吗


编辑:看起来您无法为IEquatable覆盖:Equals(Person-Person)但不确定为什么这会混淆NHibernate?

正如您在编辑中提到的,是的,您无法为NHibernate实体类实现
IEqualityComparer
。只需覆盖简单的公共覆盖
bool Equals(object obj)
public override int GetHashCode()