Entity Generator
O/Rマッピングツールは便利ですが、Entityを実装するのがちょっとだるいです。やっていることは単純なので自動化ツールをこさえてみました。
Visual Studio上で作業したいのでカスタムツールにしています。使い方はプロジェクトに対象となるテーブル作成sqlを追加し、カスタムツールにEntityGeneratorを登録するだけ。するとカスタムツールがEntityクラスを自動生成します。CodeDOMを使っているのでC#、VB問わず使えます。
カスタムツール化については、Gert Servranckx's BlogのMicrosoft.VisualStudio.BaseCodeGeneratorWithSite.dllを使わせて頂きました。EntityGeneratorを使うにはこのDLLが必要なので、氏のサイトからダウンロードしてGACにインストールしてください。
EntityGeneratorのダウンロード
インストールは圧縮ファイル内のDLLをGACに放り込んで、regファイルをダブルクリックしてください。これで、カスタムツールとして使えるようになるハズです。
EntityGeneratorの処理の流れ
実際に例を見てみましょう。
まず、以下のようなファイル(entity.sql)があったとします。
/*
EntityGeneratorテスト用
*/
CREATE TABLE /* 部署 */ DEPT (
deptno NUMERIC(2) CONSTRAINT PK_DEPT PRIMARY KEY,
deptname VARCHAR(14) ,
loc VARCHAR(13));
CREATE TABLE /* 従業員 */ EMP (
empno NUMERIC(4) CONSTRAINT PK_EMP PRIMARY KEY,
empname VARCHAR(10),
job VARCHAR(9),
mgr NUMERIC(4),
hiredate DATE,
sal NUMERIC(7,2),
comm NUMERIC(7,2),
deptno NUMERIC(2)
CONSTRAINT FK_DEPTNO REFERENCES DEPT);
-- おしまい
これをプロジェクトに追加します。折角、CodeDOMを使っているのでC#/VB両方のプロジェクトを用意しました。
カスタムツールとしてEntityGeneratorが登録されているのが分かりますでしょうか。
生成されたクラスも見てみましょう。
一応、それっぽく出来てますよね? もちろん、SQLファイルを編集すると自動的にC#/VBのクラスに反映されます。