2

通过实现 ISubclassConvention,我可以更改类层次结构中子类的鉴别器值。我现在也在寻找一种方法来为我的基类设置鉴别器值。有没有办法通过约定覆盖来更改它,或者我是否必须为我的层次结构添加手动映射?

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

4

1 回答 1

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 类的鉴别器值。

于 2010-03-19T19:03:38.360 回答