2010-07-28 11 views
0

J'ai une base de données qui nécessite une mise à jour d'une colonne d'état vers un seul code d'état de caractère ('E' ou 'U').Alternative à "char" enum

Je voudrais utiliser une énumération pour mettre à jour ce champ via mon API afin de garantir que les valeurs possibles sont restreintes correctement. Évidemment, les enums ne peuvent pas être de type char. Quelle pourrait être une bonne méthode alternative?

Et non, je ne peux pas changer le schéma de base de données :)

+0

Ressemblant à http://stackoverflow.com/questions/1180174/how-to-implement-c-enum-for-enumerated-char1-database-field - hoepfully qui vous aidera. – Chris

Répondre

4

Vous pouvez attribuer à caractères enum membres.

cette aide:

enum Status 
{ 
Empty = 'E', 
Updated = 'U' 
} 
void Main() 
{ 
Status status = Status.Empty; 
Console.WriteLine("{0}: {1}", status, (char)status); 
} 
+0

Intéressant, je n'ai pas réalisé que le compilateur le permet :) Merci – leppie

+0

Moi non plus ... Les avantages de Linqpad! –

+0

J'ai déjà vu cette configuration, elle me semble un peu hachée et n'assure pas vraiment l'intégrité des données (il faut se souvenir de la distribution). Je pourrais l'utiliser s'il n'y a rien de mieux disponible. – fearofawhackplanet

1

byte - si vous avez char

ushort - si vous avez nchar

Les deux peuvent être jetés à l'entier sous-jacent, puis jeté à char (C#).