Emotion Wave Tech Blog

福岡にあるエモーションウェーブ株式会社のエンジニアが書いています。

テーブル定義書からEntityクラスを自動生成したら実装が少し楽になった(きっと)

あけましておめでとうございます。 本年もよろしくお願いします。

とても久しぶりなブログですが、今年一発目はC#.NETを使った開発での話を。

データベースからSELECTで取得した値をクラスに格納したりすることがあると思います。 DataTable等に格納しても良いのですが、クラスやクラスのリスト等に格納しておくと後続の実装も何かと楽になりますよね。 可読性も上がるでしょうし。

ただ、実装する人が都度手作業で格納するクラスを作成するのは面倒くさいので、 予め各テーブルと同じ項目(プロパティ)を持ったクラスを用意しておけば何かと便利ですよねってことで、 テーブル定義書(EXCEL)を元に各テーブル毎にそのテーブルのプロパティを持ったクラス(.csファイル)を生成するツールを作成しました。 ツール自体もC#で作成しました。

で、自動生成したそのクラスを利用して以下のような実装をします。

2行目と4行目に出てくる「MShohin」というクラスが商品マスタのテーブル定義から自動生成したEntityクラスです。

DataTable等は使用せずに、上記の様にクラスに格納して使用するようにしておけば、 例えばテーブルのカラム名が変わった場合はコンパイルエラー(プロパティがないよーって)が発生するので、 実行しなくても事前にエラーを発見して対応することが出来ます。

ちなみに、1行目のmshohinDataAccessクラス自体も自動生成しています。 ココら辺の話も後日書きたいと思います。

小さなことかもしれませんが、それなりの規模の開発では、こういうちょっとした工夫をするのとしないのとでは、色々と違いが出るのかなと思っています。 ツールを作るのは時間も必要ですし、面倒くさいですが、一度作ってしまえば終わりですし、それによって後の作業が効率化できるのであれば絶対にやるべきですよね。

ということで、今年もぼちぼちですがブログ書いて行きたいと思っています。

f:id:devew:20191227120758j:plain photo credit: Nisha A via photopin cc