通过实现ISubclassConvention,我可以更改类层次结构中子类的Discriminator Value。我现在正在寻找一种为我的基类设置Discriminator Value的方法。有没有办法使用约定覆盖来更改它,还是我必须为我的层次结构添加手动映射?
(IClassConvention提供了DiscriminatorValue属性,但它是只读的,所以没有运气。)
答案 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类的鉴别值。