枚举的替代方案 - 播种数据库时

时间:2012-02-26 10:20:52

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

我现在正处于新应用程序的设计阶段并正在进行一些研究。我遇到了EF 4.3的CodeFirst方法并且非常喜欢它。

然而,有一个设计目标,我不知道如何实现。

假设我有一个任务类:

    public class TaskModel
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public TaskType Task { get; set; }
    }

    public enum TaskType
    {
        Sales = 0,
        Marketing = 1,
        CustomerService = 2
    }

我知道EF 4.3目前不支持枚举。因此,此代码甚至不会生成正确的数据库模型。但是我甚至不需要枚举。如果用户想在运行时添加新的TaskType怎么办?

因此我认为最好将TaskType作为一个类,它本身就会成为一个表,用户可以添加更多的条目。但是我如何让它们一起映射呢?

1 个答案:

答案 0 :(得分:1)

在这种情况下,它是常见的一对多关系:

public class TaskModel
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual TaskType Task { get; set; }
}

public class TaskType
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<TaskModel> TaskModels { get; set; }
}