我现在正处于新应用程序的设计阶段并正在进行一些研究。我遇到了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作为一个类,它本身就会成为一个表,用户可以添加更多的条目。但是我如何让它们一起映射呢?
答案 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; }
}