Перечисления все еще не поддерживаются в EF 4.3.Не имеет значения, указали ли вы другой DataType в атрибуте.
EF просто полностью игнорирует перечисления при анализе класса и создании таблиц.
Enum
обещана поддержкаEF 5.0 хотя ... наконец-то!
На данный момент вместо этого используйте свойство int
и добавьте еще одно свойство, которое преобразует int
в значение enum
на лету.Также, чтобы быть уверенным, что в следующей версии EF ничего не сломается, добавьте ключевое слово Ignore
.
public class Setting
{
public Guid SettingId { get; set; }
public string Key { get; set; }
public string Value { get; set; }
[Column("DataType", TypeName = "varchar")]
public int DataTypeInt { get; set; }
[Ignore]
public SettingDataType DataType
{
get { return (SettingDataType)this.DataTypeInt; }
set { return this.DataTypeInt = (int)value; }
}
}