我有一个已成功映射的继承结构
产品(基础)
PdfProduct(继承自Product)和OtherProduct(继承自Product)
这些工作正常,我之前用 hbm.xml 文件做过类似的事情。
在上一个项目中,当我试图找出产品是什么类型时,我遇到了问题,但我无法做到这一点,因为它是代理(产品是 PdfProdcut)。
为了解决这个问题,我向基本 Product 添加了一个抽象属性,并在返回枚举器的其他类中重写了它。
当我使用 xml 映射执行此操作时,我只是没有映射“类型”列,一切都很好。
现在我尝试自动映射继承关系,它自动将抽象属性映射到子类,但这不是必需的,因为它不在数据库中。
我有什么想法告诉它忽略这些吗?由于子关系没有生成映射,因此我不确定将忽略语句放在哪里。
任何帮助都会受到极大的欢迎。
Fluent NHibernate 有一个忽略属性方法,您可以在设置中使用:
.ForTypesThatDeriveFrom<Product>(p => p.IgnoreProperty(x => x.Type))
顺便说一下,我们通过在基类中添加一个 Self 属性来解决这个问题。此属性将始终返回正确的(非代理)类型:
public virtual Product Self
{
get { return this; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)