C#Enum使用Sql Server表中的值

che*_*525 3 c# sql-server-2005

目前我有一个SQL Server 2005表,看起来有点像:

ID | name  | desc
----------------------
1  | ONE   | Value One
3  | THREE | Value Three
5  | FIVE  | Value Five

此表对应于C#中的枚举,如下所示:

enum MsgTypes{
  <summary>Value One</summary>
  ONE = 1,
  <summary>Value Three</summary>
  THREE = 3,
  <summary>Value Five</summary>
  FIVE = 5
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:有没有一种很好的方法将枚举与SQL表关联起来,以便不需要在c#代码中手动对表中的值进行任何更改/添加?

Jon*_*eet 11

如果你想要它有点动态,为什么要把它作为一个开始的枚举?只需从应用启动时从表中获取详细信息,并在(比如说)a中记住它们Dictionary<int, string>.如果您愿意,您可以始终将值封装在您自己的值类型中,从而强制执行该范围.

或者,如果您不介意重新编译,可以在构建时获取它并自动生成枚举源代码.