Supongamos que tengo los siguientes 2 tablas SQL:¿Cómo asignar la tabla de búsqueda a enum?
Foo
Column DataType
---------------------------
Title NVARCHAR(20)
Body NVARCHAR(MAX)
FooTypeId TINYINT
FooType
Column DataType
--------------------------
FooTypeId TINYINT
Name NVARCHAR(10)
Ahora, im utilizando Entity Framework 4.0 con un contexto de datos personalizados e implementación POCO .
¿Cómo puedo asignar esto al diseñador y a mi POCO?
¿Tengo que crear una propiedad POCO (de tipo byte asumo) llamada "FooTypeId", entonces expongo OTRA propiedad de mi tipo de enumeración?
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
}
Por el momento, no tienen incluso la FooType tabla en mi diseñador, ya que pensé que puedo tratar de "expresar" esto como una enumeración de la FooTypeId real en la propiedad de Foo. ¿O se supone que debo crear una "Propiedad de navegación" en el mapeador, y luego definir eso en mi POCO?
He leído hilos de unos años atrás (EF1) que dicen "Los enumerados no son compatibles con EF", ¿sigue siendo así con EF4? Si lo es, ¿qué estoy haciendo bien?
¡Estoy un poco perdido aquí, una guía sería muy apreciada!
He usado T4 para hacer esto. http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –