Domanda

Ho tabelle denominate Eventi e Registro. La tabella Eventi comprende ID, descrizione e tipo dell'evento. Inoltre, il registro contiene LogID, EventID (si riferisce all'ID dalla tabella degli eventi) e timstamp.

Sto usando Entities framework. Mentre inserisco una voce nella tabella del registro, cito l'id dell'evento come il numero corrispondente all'evento del registro dalla tabella degli eventi. Mentre continuo a utilizzare questa registrazione attraverso l'app, diventa ingombrante ricordare l'id dell'evento per l'evento registrato. Vorrei mappare questi ID evento come enumerazioni nel mio codice e utilizzare l'enum per una migliore usabilità.

Qualcuno ha creato enum usando questo approccio? In tal caso, condividi le tue opinioni sul design per crearne uno.

È stato utile?

Soluzione

È possibile, ma dovrai definire manualmente enum .

Se questo è un buon design dipende dalla quantità di eventi diversi che si stanno definendo e quando. È possibile creare nuove definizioni di eventi e non è necessario modificare il codice? In tal caso, un enum sarebbe probabilmente una cattiva idea. Se l'elenco degli ID evento è statico e non troppo grande, un enum sarebbe accettabile e (a mio avviso) persino incoraggiante.

Modifica: le mie scuse, la soluzione che ho fornito era in realtà il modo in cui è stata eseguita in LINQ to SQL, non Entity Framework 1.0. Deve essere stata una mancanza di caffè. Il modo in cui viene eseguito in EF consiste nel definire una proprietà tipizzata correttamente in una classe parziale.

Ad esempio, ho una colonna EventType nel mio database, che desidero mappare su un enum . Ho rinominato la proprietà da EventType predefinito a EventTypeInt , come puoi vedere di seguito:

 Mappatura tabella EventCalendar nel modello
(fonte: subbot.net )

Quindi imposta le proprietà Getter e Setter per questa colonna su privato (nella finestra del gestore proprietà che probabilmente hai usato per rinominare EventType ). Una volta fatto e salvato, usa il seguente codice:

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

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

Sì, è noioso. Era molto più pratico nei modelli LINQ to SQL.

Altri suggerimenti

Invece di creare ENUMS hai cercato di rappresentarli come proprietà di navigazione nei tuoi set di entità?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top