Tout d'abord, je ne suis pas sûr que ce que vous voulez soit possible, EF veut s'occuper de la colonne discriminante, et en fonction du type de classe, il voudrait définir la valeur du discriminant, dans ce cas, comment va-t-il définir la valeur, à quelle valeur possible. Cela ne fait aucune différence lors du chargement depuis la base de données, mais c'est un peu problématique lorsqu'on essaie de le sérialiser vers la base de données.
1- Avez-vous essayé de faire plusieurs cartes pour chaque valeur possible :) Vous pouvez avoir une erreur disant que DarkColor a déjà été mappé.
2- La deuxième suggestion est d'ajouter un attribut [NotMapped] ColorWeight, et de renvoyer le noir ou le blanc en fonction de la couleur, et d'utiliser cette propriété comme champ discriminant, mais je suppose que le champ discriminant devrait exister dans la table.