Les énumérations avec EF code de la première méthode standard pour l'ensemencement DB et ensuite à l'aide d'?
Est-il un moyen standard pour l'utilisation des Enums en EF code-première? Il semble y avoir quelques exemples de décisions utilisation d'une classe wrapper pour l'enum.
Cependant, je voudrais être en mesure de définir l'énumération et ont les valeurs enum également placés dans la base de données à l'aide de la base de données de l'initialiseur. Il ne semble pas être beaucoup de point dans la définition de l'enum et de la création d'un wrapper, si je puis avoir de la graine à la table de base de données manuellement à partir de l'enum.
- Si vous voulez enum en tant que distincte de la table avec des paires clé-valeur, alors il n'est pas enum plus et il devient standard relation.
Vous devez vous connecter pour publier un commentaire.
Maintenant pris en charge : http://blogs.msdn.com/b/adonet/archive/2011/06/30/announcing-the-microsoft-entity-framework-june-2011-ctp.aspx
Malheureusement,
enums
ne sont pas pris en charge nativement sur EF 4.1. Voici une plutôt célèbre article sur la façon de traiter avec eux: De truquer les enums sur EF 4. Il ne, cependant, besoin d'un wrapper.Il y a une façon simple de cartographier des enums en EF 4 toutefois: il suffit de créer un int propriété sur votre classe pour représenter l'int valeur de l'enum. C'est la propriété que l'EF devrait la carte, puis une "mini-wrapper" de la propriété pour vous permettre d'utiliser l'enum.
Sur la génération de la base de données, EF seront heureux de vous ignorer tout type elle ne sait pas comment la carte, mais l'int de la propriété sera mappé.
Remarque: C'est pris directement à partir de ma réponse à un autre
enum
etEF
question: 4.1 EF Premier Code carte enum enveloppe de type complexeColor
énum .NET; juste utilisé comme un exemple, mais ce serait un simple vieuxenum
vous créer dans le code. Je vais changer de exemple un peu pour que ce soit clair.int
de la propriété. Leint DayOfWeekValue
est stocké dans la base de données, et dans le code, vous pouvez simplement utiliser leDay
de la propriété, ce qui vous permet de convertir leint
(à partir de la base de données) à unDayOfWeek
enum
valeur.int
valeur dans la base de données, vous avez juste besoin de changer laenum
valeurs 🙂J'ai Écrit un post à ce sujet. Vous pouvez utiliser le Code Premières Migrations à ajouter vos valeurs enum à la base de données. Regardez ici: http://linqto.net/blog/2012/10/entity-framework-code-first-and-enum-support/