héritage AutoMapping: Comment ajouter convention discriminateur pour la classe de base

StackOverflow https://stackoverflow.com/questions/2290982

  •  21-09-2019
  •  | 
  •  

Question

En mettant en œuvre ISubclassConvention, je peux changer la valeur discriminante pour les sous-classes dans ma hiérarchie de classes. Je cherche maintenant un moyen de définir la valeur discriminante pour mes classes de base aussi bien. Est-il possible de le changer avec une commande prioritaire convention ou dois-je ajouter un mappage manuel pour ma hiérarchie?

(Le IClassConvention fournit la propriété DiscriminatorValue mais il est en lecture seule, donc pas de chance.)

Était-ce utile?

La solution

La seule façon que je connaisse est de faire override simple cartographie juste pour la classe de 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");
    }
}

"BaseDepot" sera valeur discriminante pour la classe Depot.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top