Criando Enums de Entidades
-
22-07-2019 - |
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.
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:
(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?