Enumerationen im ADO.NET Entity Framework 5.0

Der Dotnet-Doktor  –  1 Kommentare

Die Version 5.0 des ADO.NET Entity Framework (EF) unterstützt auch das Mapping von .NET-Enumerationen (Aufzählungstypen) auf Datenbankspalten – für Projekte mit .NET Framework 4.5.

In Visual Studio 11 wählt man dafür im EF-Designer auf einem Attribut einer Entitätsklasse den Punkt "Convert To Enum". Es öffnet sich dann ein Dialog, in dem man einen Namen, einen Datentyp (Byte, SByte, Int16, Int32, Int64) und die Elemente für den Aufzählungstypen jeweils mit Name und Wert erfasst. Visual Studio generiert dann einen entsprechenden Enum-Typ. Der neue Typ erscheint im Model Browser unter "Enum Types" und lässt sich dort auch nachträglich modifizieren. Alternativ kann man hier im Model Browser auch einen Aufzählungstypen anlegen und diesen dann über das Properties-Fenster einer Spalte zuordnen.

Im Programmcode kann man dann den Aufzählungstypen wie einen normalen Enum-Typ verwenden:

 WWWings6Entities modell = new WWWings6Entities();
var f = new Flughafen();
f.Name = "Essen/Mülheim";
f.Typ = Flughafentypen.Regionalflughafen;
modell.Flughafen.AddObject(f);
modell.SaveChanges();

Auch in LINQ-Abfragen lassen sich die Aufzählungstypen einfach verwenden:

 var q = from fh in modell.Flughafen where 
fh.Typ==Flughafentypen.Regionalflughafen select fh;

Bei der Anwendung des Code-First-(Code-Only-)Modells schreibt man einfach den Enum-Typ selbst und verwendet diesen in seinen Klassen. Das entsprechende Datenbankschema wird dann vom Entity Framework angelegt.

Weitere Beispiele findet man hier.