Tinyint (байт), SmallInt (Int16) не совместим с Enum в EF5

Используя первый дизайн базы данных и имея столбец tinyint (или smallint):

[MyEnumColumn] [tinyint] NOT NULL

Я сопоставил этот столбец с Enum Type в EDM с

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

Где NSpace.MyEnumType определяется так:

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

Только чтобы получить эту ошибку при попытке загрузить сущность из контекста:

Указанная схема недействительна. Ошибки:

Не удалось найти соответствующий тип слоя объекта для концептуального типа EntityDataModel.MyEnumType.

Следующая информация может быть полезна при устранении предыдущей ошибки:

Базовый тип типа перечисления CLR не соответствует базовому типу типа перечисления EDM.

То же самое применимо, если я использую [Smallint] и [Int16], но как только я изменяю базу данных на [Int] и тип enum на [Int32], ошибка исчезает.

Почему мне нужно хранить значение перечисления в поле данных 4Byte (Int) вместо 1Byte (Tinyint), если в перечислениях за 99,9% времени не более 256 элементов или я что-то упустил?

Ответы на вопрос(1)

Ваш ответ на вопрос