自动化继承:如何为基类添加Discriminator约定

时间:2010-02-18 18:09:39

标签: fluent-nhibernate automapping

通过实现ISubclassConvention,我可以更改类层次结构中子类的Discriminator Value。我现在正在寻找一种为我的基类设置Discriminator Value的方法。有没有办法使用约定覆盖来更改它,还是我必须为我的层次结构添加手动映射?

(IClassConvention提供了DiscriminatorValue属性,但它是只读的,所以没有运气。)

1 个答案:

答案 0 :(得分:1)

我知道的唯一方法是只对基类进行简单的映射覆盖。

public class DepotMappingOverride : IAutoMappingOverride<Depot>
{
    /// <summary>
    /// Alter the auto mapping for this type
    /// </summary>
    /// <param name="mapping">Auto mapping</param>
    public void Override(AutoMapping<Depot> mapping)
    {
        mapping.DiscriminateSubClassesOnColumn("Type", "BaseDepot");
    }
}

现在“BaseDepot”将成为Depot类的鉴别值。