Supposons que j'ai les 2 tables SQL suivantes:Comment mapper la table de recherche en enum?
Foo
Column DataType
---------------------------
Title NVARCHAR(20)
Body NVARCHAR(MAX)
FooTypeId TINYINT
FooType
Column DataType
--------------------------
FooTypeId TINYINT
Name NVARCHAR(10)
Maintenant, im en utilisant Entity Framework 4.0 avec un contexte de données personnalisées et la mise en œuvre POCO .
Comment est-ce que je mappe ceci sur le concepteur, et mon POCO?
Dois-je créer une propriété POCO (de type byte je suppose) appelée "FooTypeId", puis j'expose une autre propriété de mon type enum?
Ie.
public class Foo
{
public byte FooTypeId { get; set; } // for ORM - do i need this??
public FooType FooType // for most querying operations
{
get
{
return (FooType)this.FooTypeId;
}
set
{
this.FooTypeId = (int)value;
}
}
}
public enum FooType
{
Blah = 1,
Foo = 2,
Bar = 3
}
En ce moment, je n'ai même pas le FooType tableau sur mon concepteur, que je pensais que je peux essayer de « exprimer » cela comme une énumération de la FooTypeId réelle sur la propriété Foo. Ou suis-je censé créer une "Propriété de navigation" sur le mappeur, puis définir cela dans mon POCO?
J'ai lu des fils de discussion datant de quelques années (EF1) disant "Les Enums ne sont pas supportés par EF", est-ce toujours le cas avec EF4? Si c'est le cas, est ce que je vais bien?
Je suis un peu perdu ici, quelques conseils seraient grandement appréciés!
J'ai utilisé T4 pour cela. http://www.hanselman.com/blog/T4TextTemplateTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –