Entity Framework und enums

19/04/2009 - 21:45 von Paul Werkowitz | Report spam
Hallo Netizens,

AFAIK unterstützt das EF ja kein Mapping von enums auf DB Spalten. Das wird
andererseits doch sicher andauernd gebraucht - wie macht ihr das?

Ich verwende derzeit eine "manuelles Mapping". Ich habe eine DB-Spalte mit
entweder int oder string und führe die Umsetzung auf meinen enum Typ
manuell im Code durch. Ärgerlich ist, dass man für jedes enum den Code
nahezu neu hinschreiben muss Natürlich könnte man das allgemeiner
fallsen, indemman z.B. die enum-Werte mit Attgributen dekoriert, die die
Rep in der DB spezifizieren. Trotzdem alles unschön...

Greetz
Paule
 

Lesen sie die antworten

#1 Markus Springweiler
20/04/2009 - 15:36 | Warnen spam
Paul,

AFAIK unterstützt das EF ja kein Mapping von enums auf DB Spalten. Das wird
andererseits doch sicher andauernd gebraucht - wie macht ihr das?



Ungefàhr so wie du.

Ich verwende derzeit eine "manuelles Mapping". Ich habe eine DB-Spalte mit
entweder int oder string und führe die Umsetzung auf meinen enum Typ
manuell im Code durch.



Also grob:
[DataMember]
public SomeEnum EventType
{
get { return (SomeEnum)this.internalEventType; }
set { this.internalEventType = (short)value; }
}

partial void OninternalEventTypeChanged()
{
this.OnPropertyChanged("EventType");
}


Ärgerlich ist, dass man für jedes enum den Code
nahezu neu hinschreiben muss...



Ärgerlicher ist, dass man allzuschnell versehentlich die Enum-Property in
Linq to Entities verwendet, und das kracht erst zur Laufzeit.

Das Problem stinkt übrigens schon, so alt wie es ist:
http://social.msdn.microsoft.com/Fo...a43cbab57/

/\/\arkus.

Ähnliche fragen