我应该将我的枚举存储在数据库级别还是应用程序逻辑(.NET)中?

Mca*_*001 4 sql vb.net enums enumeration

我有一张桌子,我们称之为对象.它有一组预定义的记录,如下所示:

ObjectId ObjectName

  1       Salmon
  2       Trout
  3       Seabass
  4       Shark
Run Code Online (Sandbox Code Playgroud)

等等..

所以,我想以某种方式实现枚举.但是最好的方法是在数据库中为它创建表,还是在CommonEnums代码隐藏文件中的应用程序逻辑中实现它?

Mar*_*eli 6

我们在两个地方添加它们,我们使用代码生成器来保持值的同步.

主要值在Enum中,但模板会自动生成更新数据库的脚本

我们还向实体添加了一个属性,以显示枚举属性,而不是保存到数据库的整数

编辑:添加如何操作的示例(在VB.NET中:

    <EnumDbTableInfo("TableName", "keyColumn", "descColumn")> _
    Public Enum CasoImportacion As Short

        <Description("")> _
        Normal = 0

        <Description("The First Description")> _
        FirstRealValue = 1

        <Description("A second one")> _
        AnotherValue = 2

        <Description("Third Description")> _
        LastValue = 3


End Enum
Run Code Online (Sandbox Code Playgroud)

稍后,EnumHelper类将获取具有EnumDbTableInfo属性的类,并生成用于更新DB的脚本

最好的祝福

  • 两个地方肯定都是+1 - 您必须拥有数据库中的值才能确保初学者的完整性! (3认同)