使用Entity Framework存储类别的枚举或实际表?

时间:2015-06-24 19:24:41

标签: c# entity-framework enums

我正在使用Entity Framework Code First来构建我的数据库。我的类别不会经常变化,但可能会在未来发生变化。将类别数据存储在枚举或实际表中是否更好?下面是我实现这两种方法的一个例子:

使用枚举:

public enum Role
{
    Administrator, Employee, Developer
}

public class User
{
    public int ID {get;set;}
    public string Name { get; set; }
    public Role Role { get; set; }
}

使用单独的表格:

public class User
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int RoleID { get; set; } // Foreign key to Role table
    public virtual Role Role { get; set; } // Navigation property for Role
}

public class Role
{
    public int ID { get; set; }
    public string RoleName { get; set; }
}

2 个答案:

答案 0 :(得分:1)

如果数据可以更改使用实际表 - 我已经看到更改枚举,它不是很漂亮。您将拥有类似&#34的代码;首先尝试" "先试试第二......" - 例如,请参阅Microsoft office interop enums;)

答案 1 :(得分:1)

我对此的看法是使用第二种方法(单独的表),因为它支持关注点分离(数据与实现分开)。 但是,如果您可能没有以任何方式添加更多角色,那么您使用枚举的第一种方法应该没问题。