C# 在数据库和.net中使用枚举

C# 在数据库和.net中使用枚举,c#,.net,sql,sql-server,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_代码作为nvarchar接收,并使用它查找组类型的正确id。 我使用此方法是为了在代码和数据库之间进行分离(枚举数不

以下是我声明枚举的方式:

Enum GROUP_TYPE {
    TYPE1,
    TYPE2
}
这就是我存储它们的方式:

GroupTypes(id, code) //code is the enum value name
Groups(id, groupName, groupTypeId)
在InsertGroup存储过程(我使用的是存储过程)中,我将@type_代码作为nvarchar接收,并使用它查找组类型的正确id。 我使用此方法是为了在代码和数据库之间进行分离(枚举数不必与GroupTypes表中的id相同)

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

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

我会使表中的枚举和id相同

enum Group
{
  Group1 = 1,
  Group3 = 3
}

这是最简单和最安全的方法。

我通常将枚举值或名称(最好是根据BryceH显式设置的数值)映射为数据库列,并向列添加约束,请务必注意,在enum的注释中,See可能存在重复项,但这使得代码在数据方面而不是在方案方面依赖于db。