这就是我声明枚举的方式:
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中定义,如果是,我将字符串代码解析为枚举对象。
我做得对吗? 有没有更好的方法来处理代码和数据库中的枚举?
答案 0 :(得分:3)
我会使enum和表中的id相同。
enum Group
{
Group1 = 1,
Group3 = 3
}
这是最简单,最安全的方式。
答案 1 :(得分:0)
我通常将枚举值或名称(最好是根据BryceH显式设置的数值)映射为数据库列,并且向列添加约束,请务必在枚举的注释中注明