在POCO类中使用枚举

时间:2016-06-28 07:06:06

标签: c# entity-framework enums

我正在使用.NET Framework 4.0和C#开发一个Entity Framework 6.1.3库。

我有一个问题,是否可以在POCO课程中使用枚举。

我有这个课和枚举:

public class MyClass
{
    public byte MyClassId { get; set; }
    public string Name { get; set; }
    public byte CodeType { get; set; }
    public byte HelperCodeType { get; set; }

    public virtual ICollection<Code> Codes { get; set; }
    public virtual ICollection<HelperCode> HelperCodes { get; set; }
}

public enum CodeTypes : byte
{
    Generated = 0,
    PrePrinted = 1,
    PrePrintedAndPreLoaded = 2,
    PreLoaded = 3,
    NotUsed = 4
}

我想知道我是否可以使用枚举类型而不是MyClass更改CodeType字段HelperCodeTypebyte

public class MyClass
{
    public byte MyClassId { get; set; }
    public string Name { get; set; }
    public CodeTypes CodeType { get; set; }
    public CodeTypes HelperCodeType { get; set; }

    public virtual ICollection<Code> Codes { get; set; }
    public virtual ICollection<HelperCode> HelperCodes { get; set; }
}

在POCO类中使用枚举而不是字节是个好主意吗?

1 个答案:

答案 0 :(得分:4)

实体框架从一段时间以来就支持枚举(如果我没记错的话,从第5版开始)。在数据库中,它将使用枚举的数字类型作为列类型,在您的情况下,它将添加byte列。

如果某些业务逻辑依赖于该领域,我认为枚举是一个好主意。