1

Enum我从 db 表创建了一个新类,该类Role具有RoleIdRoleType.

public enum UserType
{
    Student = 1,
    Teacher = 4
    Admin = 5 
}

这里 1,4,5 是来自 db 的 RoleId(Primary Key)。我所做的是手动查找每个角色的 db 主键值并将其映射到enum.

这里的缺点是每次我需要enum在 dbRoleId更改时更新类。

是否有任何其他标准做法将数据库值映射为enum集合?

任何建议都会有所帮助

4

1 回答 1

3

最近,我一直面临同样的问题。一种可能的解决方案是使用 T4 模板(代码生成)。您可以实现一些自定义逻辑来选择表和描述/值列。像这样的东西

    //Start write enum file:        
    #>
    namespace <#=enumNameSpace#>
    {
        public enum <#=enumName#>Enum
        {
        <#
          command.CommandText = string.Format("SELECT * FROM {0}",TABLE_NAME_GOES_HERE);
          var columnReader = command.ExecuteReader();
          while (columnReader.Read())
          {#>   
               <#=columnReader[DESCRIPTION_COLUMN_NAME].ToString()#> = <#=columnReader[VALUE_COLUMN_NAME].ToString()#>,
          <#    
          }#>
        }
    }
    <#

您可以在这篇精彩的文章中阅读更多内容

于 2013-02-25T06:13:36.643 回答