Tinyint (Byte), SmallInt (Int16) nicht kompatibel mit Enum in EF5

Verwenden des Datenbankentwurfs und der Spalte tinyint (oder smallint):

[MyEnumColumn] [tinyint] NOT NULL

Ich habe diese Spalte Enum Type in EDM mit zugeordnet

External Type: NSpace.MyEnumType
Name:MyEnumType
UnderlyingType:Byte

Wobei NSpace.MyEnumType wie folgt definiert ist:

public enum MyEnumType 
{ One, Two, Three, All }

Nur um diesen Fehler zu erhalten, wenn versucht wird, eine Entität aus dem Kontext zu laden:

Das angegebene Schema ist ungültig. Fehler:

Für den konzeptionellen Typ 'EntityDataModel.MyEnumType' konnte kein entsprechender Objektlayertyp gefunden werden.

Die folgenden Informationen können zur Behebung des vorherigen Fehlers hilfreich sein:

Der zugrunde liegende Typ des CLR-Aufzählungstyps stimmt nicht mit dem zugrunde liegenden Typ des EDM-Aufzählungstyps überein.

Gleiches gilt, wenn ich [Smallint] und [Int16] verwende, aber wenn ich die Datenbank auf [Int] und den Aufzählungstyp auf [Int32] ändere, ist der Fehler behoben.

Warum muss ich den Aufzählungswert im 4-Byte-Datenfeld (Int) anstelle von 1-Byte-Datenfeld (Tinyint) speichern, wenn die Aufzählungen in 99,9% der Zeit nicht mehr als 256 Elemente enthalten oder ich etwas anderes vermisse?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage