Domanda

Con l'attuazione ISubclassConvention, posso cambiare il valore discriminatore per le sottoclassi della mia gerarchia di classe. Ora sto cercando un modo per impostare il valore discriminatore per le mie classi di base pure. C'è un modo per cambiare con un override di convenzione o devo aggiungere una mappatura manuale per la mia gerarchia?

(L'IClassConvention fornisce la proprietà DiscriminatorValue ma è di sola lettura, in modo da nessuna fortuna lì.)

È stato utile?

Soluzione

L'unico modo che conosco è quello di rendere semplice esclusione mappatura solo per la classe di 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");
    }
}

Ora "BaseDepot" sarà il valore discriminante per la classe Depot.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top