Como faço para substituir uma propriedade Int com um Enum no Entity Framework?

votos
11

Eu tenho uma classe de entidade que tem uma propriedade com uma coluna db subjacente do tipo de dados Int, no entanto, na realidade, eu quero essa propriedade para ser um Enum. Existe alguma maneira para especificar que essa propriedade retorna um Enum?

Publicado 09/12/2008 em 16:44
fonte usuário
Em outras línguas...                            


1 respostas

votos
10

Indiretamente, como assim .

Pessoalmente, eu deixo o público de armazenamento int (por exemplo, como DbFoo, em que a propriedade enum é Foo) - de que maneira eu ainda pode escrever lambdas contra a coluna para a execução no DB, por exemplo:

where row.DbFoo == SomeConstant

Se você não exponha o valor de armazenamento, você não pode fazer isso tão limpa. Você poderia igualmente deixá-lo interna e tem alguns métodos no contexto de fazer a filtragem ... aqui está o que eu escrevi mais cedo hoje:

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

onde User.UserTypeAdminé a minha constante interno. Neste caso, eu não poderia usar uma subclasse discriminados, pois estava interferindo com o ADO.NET Data Services.

Respondeu 09/12/2008 em 16:46
fonte usuário

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