实体框架CTP 5 - 代码优先映射 - 无法正确映射枚举列表

时间:2010-12-15 16:19:22

标签: entity-framework code-first

我有以下

[DataContractAttribute]
public class Animal
{
    [Key]
    [XmlElement(ElementName = "Id")]
    [DataMember()]
    public Guid Id
    {
        get;
        set;
    }

    [XmlElement(ElementName = "AnimalType")]
    [DataMember()]
    public List<AnimalType> AnimalType
    {
        get;
        set;
    }
 }

我通过代码第一种方法将其映射到EF表格

  modelBuilder.Entity<Animal>().ToTable("Animal");

如您所见,我没有执行过一些复杂的映射,但是List of AnimalType枚举没有自动映射到DB中的任何列/表。我是否需要向模型构建器添加一些额外的代码来控制枚举列表的映射?

2 个答案:

答案 0 :(得分:8)

自EF CTP5起,枚举尚未支持。该团队宣布他们将在下一个RTM版本中全力支持枚举,该版本的目标是在2011年第一季度发布。

答案 1 :(得分:1)

我知道最长的时间,EF不支持枚举,但我不知道是否仍然如此。

无论哪种方式,我认为EF处理除另一个实体以外的类型列表存在一般问题。什么是主键?有什么价值?它应该尝试将数据存储在一列中还是创建一个单独的表并创建外键约束?在将模型转换为数据库模式之前,可能需要回答这些问题。