【C#】PostgreSQLでEntityFrameworkの使用方法#3

ADO.NET Provider for PostgreSQL with Entity Framework, LINQ to PostgreSQL and NHibernate Support 2015-12-19 12-33-27

前回の続きです。

あれから暫く、業務でも必要だったので、どうにかしてPostgreSQLからPocoファイルを自動生成出来ないか調べていましたが見つかりませんでした・・・

「Plain Old CLR Object」の略。特別なクラスやインターフェイスの継承/実装を行っていないプレーンな.NETクラス(のオブジェクト)のこと
POCOによるエンティティ・クラス

とは言え手動で作成もしたくなかったので一時的にでも作成できないかいろいろ考えた結果としてdotConnect for PostgreSQLを使用してファイルの生成を行うことにしました。

dotConnect for PostgreSQLインストール

上のリンクからページに飛んで「dotConnect for PostgreSQL 7.4 Professional Trial」をダウンロードしてインストールして下さい。
ADO.NET Provider for PostgreSQL with Entity Framework, LINQ to PostgreSQL and NHibernate Support 2015-12-19 12-33-27
Download dotConnect for PostgreSQL 2015-12-19 12-34-14
ダウンロードしたファイルのインストールを行うと項目の追加で表示される項目に「Devart Entity Model」と「Devart LinqConnect Model」が追加されます。
vs1vs2
こうして追加されたプロバイダからedmlを作成します。

edmlファイルの作成

edml1
ここの作業内容に関しては省略します。基本的にご自身の環境に合わせたサーバ情報やテーブル情報を選択もしくは入力するだけです。
※念のためですが生成されたedmlファイルをそのまま使用する事は出来ますが、30日超えると操作が出来なくなるので困った自体になります

edmlからPocoファイルの作成

ここからもう一手間が必要なんですがVisualStudioにはedmlファイルからクラスファイルを生成する機能があります。「EF 5x DbContext ジェネレータ」もしくは「EF 6x DbContext ジェネレータ」です。
こちらを使用してファイルの生成を行います。
vs3
追加を行うとttファイルが生成されたかと思いますがそちらの編集を行って実行をします。
vs4
編集箇所は「ファイル名.tt」の5行目箇所で
“で囲まれた部分を先ほど生成されたedmlファイルに変更して下さい。

const string inputFile = @"$edmxInputFile$";
//変更例
const string inputFile = @"model.edml";

vs5
変更を行ったら後はファイルの作成を行うだけです。
ttファイルを右クリックして「カスタムツールの実行」を選択して下さい。
vs6

やってみた感想

まずTrial版を使っているので当然30日で使えなくなります。その上やってみると感じるんですが結構面倒な作業です。それでも数十テーブルのファイルを手動で作成するよりは楽かもしれません。逆に言えば10テーブルとか数が少なかったら手でファイル作成した方が楽だと思いました。

Follow me!