通过实现 ISubclassConvention,我可以更改类层次结构中子类的鉴别器值。我现在也在寻找一种方法来为我的基类设置鉴别器值。有没有办法通过约定覆盖来更改它,或者我是否必须为我的层次结构添加手动映射?
(IClassConvention 提供了 DiscriminatorValue 属性,但它是只读的,所以没有运气。)
通过实现 ISubclassConvention,我可以更改类层次结构中子类的鉴别器值。我现在也在寻找一种方法来为我的基类设置鉴别器值。有没有办法通过约定覆盖来更改它,或者我是否必须为我的层次结构添加手动映射?
(IClassConvention 提供了 DiscriminatorValue 属性,但它是只读的,所以没有运气。)
我知道的唯一方法是只为基类进行简单的映射覆盖。
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 类的鉴别器值。