我正在使用.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
字段HelperCodeType
和byte
:
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类中使用枚举而不是字节是个好主意吗?
答案 0 :(得分:4)
实体框架从一段时间以来就支持枚举(如果我没记错的话,从第5版开始)。在数据库中,它将使用枚举的数字类型作为列类型,在您的情况下,它将添加byte
列。
如果某些业务逻辑依赖于该领域,我认为枚举是一个好主意。