Le stockage des Enums en tant que chaînes de caractères dans MongoDB

Est-il un moyen pour stocker des Enums en tant que chaîne de caractères des noms plutôt que des valeurs ordinales?

Exemple:

Imaginer que j'ai un enum:

public enum Gender
{
    Female,
    Male
}

Maintenant si certains imaginaire Utilisateur existe avec

...
Gender gender = Gender.Male;
...

il sera stocké dans la base de données MongoDb comme { ...le "Genre" : 1 ... }

mais je préfère quelque chose comme ceci { ...le "Genre" : "Mâle" ... }

Est-ce possible? Un mappage personnalisé, de réflexion, de trucs, quoi.

Mon contexte: je l'utilise fortement typé collections de plus de POCO (eh bien, je marque ARs et utiliser le polymorphisme de temps en temps). J'ai un mince d'accès aux données de la couche d'abstraction dans une forme d'Unité De Travail. Donc je ne suis pas la sérialisation/désérialisation de chaque objet, mais je peux (et dois) définir certains ClassMaps. J'utilise officielle MongoDb pilote + fluide-mongodb.

  • Je voudrais l'éviter. La chaîne de valeur prend beaucoup plus d'espace qu'un entier. Je voudrais cependant, si la persistance est impliqué donner des valeurs déterministes pour chaque article dans votre enum afin Féminin = 1, Mâle = 2 donc, si l'enum est ajouté à plus tard ou de l'ordre des éléments de changé que vous ne finissent pas avec des problèmes.
  • Oui, je pensais à l'espace mais il n'est pas un problème puisque je n'ai que peu de cas où je préfère honnête Enums. Et vous avez vu juste, les changements futurs est ce qui me dérange. Je suppose que le marquage de toutes les valeurs de l'enum est une solution viable, en effet. Merci Chris!
InformationsquelleAutor Kostassoid | 2011-08-09