Herança de Automapping: Como adicionar Convenção Discriminadora para Classe Base
-
21-09-2019 - |
Pergunta
Ao implementar o ISUBClassConvention, posso alterar o valor do discriminador para as subclasses na minha hierarquia de classes. Agora estou procurando uma maneira de definir o valor do discriminador para minhas classes base. Existe uma maneira de mudá -lo com uma substituição de convenção ou tenho que adicionar um mapeamento manual para minha hierarquia?
(O ICLASSCONVENÇÃO fornece a propriedade DiscriminatorValue, mas é somente leitura, então não há sorte lá.)
Solução
A única maneira que eu sei é fazer com que o mapeamento simples seja substituído apenas para a classe base.
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");
}
}
Agora, o "Basepot" será o valor discriminador para a classe depot.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow