3

我有以下

[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");

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

4

2 回答 2

8

从 EF CTP5 开始,尚不支持枚举。该团队宣布,他们将在下一个 RTM 版本中全面支持枚举,该版本计划于 2011 年第一季度发布。

于 2010-12-15T18:59:04.773 回答
1

我知道很长一段时间以来,EF 不支持枚举,但我不知道是否仍然如此。

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

于 2010-12-15T16:30:09.693 回答