EF Code-First - 存储IEnumerable的枚举

时间:2011-09-27 01:31:51

标签: entity-framework-4.1 ef-code-first code-first

我正在使用EF June CTP,它具有简单的枚举支持。我有一个MVC 3视图,其中包含的复选框在提交时被检索为一些枚举数组。

public enum CheckBox : byte
{
   VALUE_1 = 1,
   VALUE_2 = 2,
   ...
}

我需要接受枚举((IEnumerable))并通过代码优先方法存储它。现在,这个属性被完全忽略了。

我不确定它是否最终会在作品中创建一个单独的一对多表或将所有值存储在一列中,但任何想法都会很棒。只需要存储它。一旦它存储它,如果它没有创建一个单独的一对多表并且以某种方式将它存储在同一个表中作为一些分隔的字符串,那么最终会很棒。但是我可能会到达这里。

谢谢。

更新1 尝试将[Flags]添加到枚举中无济于事。在表生成期间它被完全忽略。我的Model属性是:

public IEnumerable<CheckBox> Values { get; set; }

1 个答案:

答案 0 :(得分:0)

您应该使用[Flags]枚举而不是集合:

[Flags]
public enum Checboxes {
    SomeValue = 1,
    OtherValue = 2,
    ThirdValue = 4
}

public Checkboxes Boxes { get; set; }

Boxes = Checkboxes.SomeValue | Checkboxes.OtherValue;