¿Cómo reemplazo una propiedad Int con un Enum en Entity Framework?

votos
11

Tengo una clase de entidad que tiene una propiedad con una columna db subyacente de tipo de datos Int, sin embargo, en realidad, quiero que esta propiedad sea un Enum. ¿Hay alguna forma de especificar que esta propiedad devuelve un Enum?

Publicado el 09/12/2008 a las 16:44
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
10

Indirectamente, como tal .

Personalmente, dejo el almacenamiento interno int (por ejemplo DbFoo, donde está la propiedad enum Foo), de esa manera puedo escribir lambdas en la columna para su ejecución en el DB, por ejemplo:

where row.DbFoo == SomeConstant

Si no expone el valor de almacenamiento, no puede hacer esto tan limpiamente. También podría dejarlo interno, y tener algunos métodos en el contexto para hacer el filtrado ... aquí hay uno que escribí el día de hoy:

public IOrderedQueryable<User> Administrators
{
    get { return Users.Where(x => x.DbUserType == User.UserTypeAdmin)
             .OrderBy(x => x.Name);
}

¿Dónde User.UserTypeAdminestá mi constante interna? En este caso, no pude usar una subclase discriminada, ya que estaba interfiriendo con los servicios de datos ADO.NET.

Respondida el 09/12/2008 a las 16:46
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more