Автоматическое отображение наследования: как добавить соглашение о дискриминаторе для базового класса - PullRequest
2 голосов
/ 18 февраля 2010

Реализуя ISubclassConvention, я могу изменить значение Discriminator для подклассов в моей иерархии классов. Сейчас я ищу способ установить значение Discriminator для моих базовых классов. Есть ли способ изменить его с помощью переопределения соглашения или мне нужно добавить ручное отображение для моей иерархии?

(IClassConvention предоставляет свойство DiscriminatorValue, но оно доступно только для чтения, поэтому не повезло.)

1 Ответ

1 голос
/ 19 марта 2010

Единственный способ, который я знаю, - сделать простое переопределение сопоставления только для базового класса.

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.

...