BETA

EntitiyFamework Coreでフィールド名をSnakeCaseにする

投稿日:2018-12-17
最終更新:2018-12-17

やりたいこと

EntityFramework Coreではテーブル名もフィールド名もモデルの名前がそのまま使われます。
通常の命名のつけ方だとCamelCaseでクラス、プロパティの名前を付けると思います。

個人的にはDBではSnakeCaseで作成したいのでそこのマッピングをどうするか悩んでいました。
アノテーションですべてにおいて指定して対応することも可能ですが一括でできればと。

で、やったこと

ここに書いてあることを愚直にやりました。

引用になりますが下記の部分です。
サクッと対応できて個人的はとてもハッピーですヾ(´∀`)ノ

    protected override void OnModelCreating(ModelBuilder builder)  
    {  
        base.OnModelCreating(builder);  

        foreach(var entity in builder.Model.GetEntityTypes())  
        {  
            // Replace table names  
            entity.Relational().TableName = entity.Relational().TableName.ToSnakeCase();  

            // Replace column names              
            foreach(var property in entity.GetProperties())  
            {  
                property.Relational().ColumnName = property.Name.ToSnakeCase();  
            }  

            foreach(var key in entity.GetKeys())  
            {  
                key.Relational().Name = key.Relational().Name.ToSnakeCase();  
            }  

            foreach(var key in entity.GetForeignKeys())  
            {  
                key.Relational().Name = key.Relational().Name.ToSnakeCase();  
            }  

            foreach(var index in entity.GetIndexes())  
            {  
                index.Relational().Name = index.Relational().Name.ToSnakeCase();  
            }  
        }  
    }  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@saitooooの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!