我正在用。net Framework 4.0和c#开发一个实体框架6.1.3库。
我有一个关于是否可以在POCO类中使用枚举的问题。
我有这个类和enum:
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
}
我想知道我是否可以用enum类型而不是byte
更改MyClass
字段CodeType
和HelperCodeType
:
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类中使用枚举而不是字节是个好主意吗?
Entity Framework从一段时间开始支持枚举(如果我没记错的话,从第5版开始)。在数据库中,它将使用枚举的数字类型作为列类型,在您的示例中,它将添加byte
列。
我认为如果一些业务逻辑依赖于字段,枚举是一个好主意。