1

とを持つEnumdbテーブルから新しいクラスを作成しました。RoleRoleIdRoleType

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

ここで、1,4,5はdbのRoleId(主キー)です。私がしたことは、各役割のdb主キー値を手動で探し、それをにマップしたことenumです。

enumここでのデメリットは、dbRoleIdが変更されたときにクラスを更新する必要があるたびです。

enumdb値をコレクションとしてマップする他の標準的な方法はありますか?

任意の提案が役立ちます

4

1 に答える 1

3

最近、私は同じ問題に直面しています。考えられる解決策の1つは、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 に答える