2012-03-13 2 views
0

Сначала я использую код EF4.3.1 и MVC4. Моя база данных создается за исключением одного столбца, и никакая ошибка не указана. Почему этот столбец не будет создан? Должен ли я использовать атрибут EnumDataType (он ничего не делает)?Asp.Net MVC Code Первая колонка не создана

public class Setting 
{ 
    public Guid SettingId { get; set; } 
    public string Key { get; set; } 
    public string Value { get; set; } 

    [Column("DataType", TypeName = "varchar")] 
    public SettingDataType DataType { get; set; } 
    } 


    public enum SettingDataType 
    { 
     [Description("String")] 
     text, 
     [Description("Integer")] 
     integer, 
     [Description("Boolean")] 
     boolean 
    } 

ответ

2

В 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; } 
    } 
} 
2

Enums are not supported в формате EF до версии 5.0. Таким образом, вы, вероятно, просто нажимаете этот предел.

Смежные вопросы