2012-02-23 20 views
8

Aquí es un modelo:¿Cómo se interpreta un tipo de enumeración con el Código de EF Primera

Public class Person 
{ 
    [Key] 
    Public int PersonId { get; set: } 
    Public int Age { get; set; } 
    Public ColorEnum FavoriteColor { get; set; } 
} 

Public Enum ColorEnum 
{ 
    Red = 1, 
    Green = 2, 
    Blue = 3 
} 

¿Es posible para Código Marco de la entidad primero en utilizar el modelo de persona para generar la tabla correspondiente? ¿Qué pasa con el tipo de ColorEnum?

Gracias

Respuesta

11

EF 4.3 no es compatible con Enums. Pero se ha anunciado que Enum support is coming with EF 5, que saldrá junto con .NET 4.5. Para manejar enumeraciones con Code-First, actualmente hará algo como lo siguiente:

Public class Person 
{ 
    [Key] 
    Public int PersonId { get; set: } 
    Public int Age { get; set; } 

    public int FavoriteColorValue{ get; set;} 
    [NotMapped] 
    Public ColorEnum FavoriteColor 
    { 
     get{ return (ColorEnum)FavoriteColorValue; } 
     set{ FavoriteColorValue = (int)value; } 
    } 
} 

Public Enum ColorEnum 
{ 
    Red = 1, 
    Green = 2, 
    Blue = 3 
} 
+0

Muchas gracias. – Bronzato

+0

Debe decorar FavoriteColor con NotMappedAttribute para garantizar la compatibilidad cuando actualice a EF5 +. Si no, puede encontrar que termina con ambas columnas en su base de datos. –

+0

@flem Buen punto. Editaré la respuesta para incluirla. – Sorax

Cuestiones relacionadas