我有一个成功映射的继承结构
产品(基础)
PdfProduct(继承自产品)& OtherProduct(继承自产品)
这些工作正常,我之前用hmb.xml文件做过类似的事情。
在之前的项目中,当我试图找出产品的类型时,我遇到了问题,但我不能这样做,因为它是代理(产品是PdfProdcut)。
为了解决这个问题,我在基础产品中添加了一个抽象属性,并在返回枚举器的其他类中重写了它。
当我使用xml映射执行此操作时,我只是没有映射Type列,一切都很顺利。
现在我正在尝试自动映射继承的关系,它会自动将abstract属性映射到子类,但这不是必需的,因为它不在数据库中。
我是怎么告诉它忽略这些的?由于子关系没有得到映射,我不知道在哪里放置ignore语句。
任何帮助都会得到很好的接受。
答案 0 :(得分:2)
Fluent NHibernate有一个可以在设置中使用的忽略proprty方法:
.ForTypesThatDeriveFrom<Product>(p => p.IgnoreProperty(x => x.Type))
顺便说一下,我们通过向基类添加Self属性来解决这个问题。此属性将始终返回正确的(非代理)类型:
public virtual Product Self
{
get { return this; }
}