5 votes

Comment convertir un int en enum avec EF

Existe-t-il un moyen de transformer un champ int en enum dans EFv1 ? Merci ! Je veux que mon entité ait un champ enum plutôt qu'un champ int.

7voto

Arthur Points 5474

Créez deux propriétés. L'une est associée à EF, l'autre à un wrapper.

[EdmScalarProperty]
public int EnumPropInteger {get;set}
public MyEnum EnumProp
{
    get { return (MyEnum) EnumPropInteger; }
    set { EnumPropInteger = (int)value; }
}

Ce n'est pas un moyen agréable parce que vous avez deux propriétés publiques, mais c'est un moyen.

2voto

VinnyG Points 2996

-3voto

Anton Points 1432

Vous pouvez simplement convertir l'int en Enum comme ceci :

public enum TestEnum
{
Zero = 0,
One,
Two
}

TestEnum target = (TestEnum)1;

La cible devrait alors contenir TestEnum.One ;

Edit : My bad, did not interpret properly at first. Vous voulez que la carte gère le casting pour vous, non ? Je ne le sais pas pour l'instant, il faudrait expérimenter un peu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X