Entity framework 实体框架CTP 5-代码优先映射-Can';t正确映射枚举列表

Entity framework 实体框架CTP 5-代码优先映射-Can';t正确映射枚举列表,entity-framework,code-first,Entity Framework,Code First,我有以下几点 [DataContractAttribute] public class Animal { [Key] [XmlElement(ElementName = "Id")] [DataMember()] public Guid Id { get; set; } [XmlElement(ElementName = "AnimalType")] [DataMember()] publi

我有以下几点

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

    [XmlElement(ElementName = "AnimalType")]
    [DataMember()]
    public List<AnimalType> AnimalType
    {
        get;
        set;
    }
 }
[DataContractAttribute]
公营动物
{
[关键]
[xmlement(ElementName=“Id”)]
[DataMember()]
公共Guid Id
{
得到;
设置
}
[XmlElement(ElementName=“AnimalType”)]
[DataMember()]
公共列表动物类型
{
得到;
设置
}
}
我通过使用EF的代码优先方法将其映射到表

  modelBuilder.Entity<Animal>().ToTable("Animal");
modelBuilder.Entity().ToTable(“动物”);

正如您所看到的,我没有执行一些复杂的映射,但是AnimalType枚举列表没有自动映射到数据库中的任何列/表。我是否需要向模型生成器添加一些额外的代码来控制枚举列表的映射?

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


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

自EF CTP5起,枚举还不受支持。该团队宣布,他们将在下一个RTM版本中完全支持Enum,该版本将于2011年第一季度发布。

Yes。。我同意你的想法,当然还有很多悬而未决的问题。。但我认为这种缺乏支持的情况对EF来说是非常糟糕的,因为开发人员广泛使用枚举,这应该是他们积压工作的重中之重。似乎Redmond的人很难弄清楚如何将枚举强制转换为int和int,因为EF4.1中没有枚举支持。他们现在声称将在vNext(4.2或其他版本)中添加支持。来源:看来支持枚举需要更改.Net 4.0附带的核心EF库。他们不能在EF4.1中这样做,因为他们没有改变核心库。