héritage AutoMapping: Comment ajouter convention discriminateur pour la classe de base
-
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.)
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