Pergunta

Eu tenho tabelas nomeadas Eventos e Log. Os compreende tabela de eventos de ID, descrição do evento e tipo. E, o registo contém LOGID, EventID (refere-se a ID da tabela Event), e timstamp.

Eu estou usando quadro Entidades. Ao fazer uma entrada na tabela de log, eu mencionar o ID de evento como o número correspondente ao evento log da tabela de eventos. Como eu continuar a usar esse registro de todo o aplicativo, torna-se complicado para lembrar o ID de evento para o evento registrado. Gostaria de mapear estes ID evento como enums no meu código e usar apenas a enumeração para uma melhor usabilidade.

Alguém enums usando essa abordagem criou? Se assim for, por favor, compartilhe seus pensamentos sobre o projeto para criar um.

Foi útil?

Solução

É possível, mas você terá que definir o enum manualmente.

Se isto é bom design depende da quantidade de diferentes eventos que está sendo definido e quando. É possível criar novas definições de eventos e não ter que alterar o seu código? Nesse caso, uma enum provavelmente seria uma má idéia. Se a lista de IDs de evento é estático e não muito grande, então uma enum seria aceitável, e (na minha opinião), mesmo encourageable.

Editar: as minhas desculpas, a solução que eu forneci era realmente a forma como é feito em LINQ to SQL, não Entity Framework 1.0. Deve ter sido uma falta de café. A forma como ele é feito em EF, é definir uma propriedade corretamente digitado em uma classe parcial.

Por exemplo, eu tenho um EventType coluna no meu banco de dados, o que eu quero para mapear a um enum. Eu renomeou o propriedade do EventType padrão para EventTypeInt, como você pode ver abaixo:

mapeamento da tabela EventCalendar no modelo
(fonte: subbot.net )

Em seguida, você define o Getter e Setter propriedades para esta coluna para privada (na janela do gerente da propriedade que você provavelmente usado para renomear EventType ). Uma vez feito isso e salvo, use o seguinte código:

public enum EventType
{
    Unknown = 0,
    Concert = 1,
    Festival = 2
}

public partial class EventCalendar
{
    public EventType EventType
    {
        get { return (EventType)EventTypeInt; }
        set { EventTypeInt = (int)value; }
    }
}

Sim, é tedioso. Foi muito mais prático em LINQ to SQL modelos.

Outras dicas

Ao invés de criar ENUMS você olhou para representá-los como propriedades de navegação em seus conjuntos de entidades?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top