【问题标题】:Enum or actual table to store category with Entity Framework? [duplicate]使用实体框架存储类别的枚举或实际表? [复制]
【发布时间】:2015-06-24 19:24:41
【问题描述】:

我正在使用 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; }
}

【问题讨论】:

    标签: c# entity-framework enums


    【解决方案1】:

    如果数据可以更改,请使用实际表 - 我已经看到更改枚举并且它并不漂亮。您将拥有诸如“第一次尝试”“第一次尝试第二次...”之类的代码 - 例如,请参阅 Microsoft 办公室互操作枚举;)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        相关资源
        最近更新 更多