在数据库和.net中使用Enum

时间:2011-03-13 02:44:16

标签: c# .net sql sql-server

这就是我声明枚举的方式:

Enum GROUP_TYPE {
    TYPE1,
    TYPE2
}

这就是我存储它们的方式:

GroupTypes(id, code) //code is the enum value name
Groups(id, groupName, groupTypeId)

在InsertGroup存储过程中(我正在使用存储过程),我将@type_code作为nvarchar接收,并使用它来查找组类型的正确id。 我正在使用此方法来分隔代码和db(枚举数不必与GroupTypes表中的id相同)。

在GetGroups存储过程中,为了从datatable中读取代码,我正在检查类型代码是否在GROUP_TYPE中定义,如果是,我将字符串代码解析为枚举对象。

我做得对吗? 有没有更好的方法来处理代码和数据库中的枚举?

2 个答案:

答案 0 :(得分:3)

我会使enum和表中的id相同。

enum Group
{
  Group1 = 1,
  Group3 = 3
}

这是最简单,最安全的方式。

答案 1 :(得分:0)

我通常将枚举值或名称(最好是根据BryceH显式设置的数值)映射为数据库列,并且向列添加约束,请务必在枚举的注释中注明