c# - 在 POCO 类中使用枚举

标签 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
}

我想知道是否可以使用枚举类型而不是 byte 更改 MyClass 字段 CodeTypeHelperCodeType >:

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 列。

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

关于c# - 在 POCO 类中使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38069291/

相关文章:

c# - 通过反射遍历类型时如何过滤掉 <>c_DisplayClass 类型?

c# - 使用 async/await 时是否需要使字段线程安全?

c# - 如何在 C# 中为测量单位创建通用转换器?

c# - 使用 TPT 方法的多对多 Entity Framework

entity-framework - 运行时 Entity Framework 表名映射

c# - 协助 Linq 查询

c++ - 为什么我不能分配错误的枚举元素,但可以与错误的枚举元素进行比较?

c# - 如何在C#中使图像可见

c# - 将泛型类型参数限制为 System.Enum

enums - 匹配枚举时无法移出借用的内容