EntityFramework4のDBファーストでDbContextのコードを生成
VS2012の.NET4.5ベースのEntityFramework5.0で、データベースファースト、モデルファーストから出力したコードは軽量なDbContextベースになります。
これに対して、.NET4.0プロジェクトでEF5をインストールした場合、EFのバージョンは4.4となります。この時、DBファーストのジェネレートをするとObjectContextベースでコードが生成されてしまいます。
EF4.3のコードファーストがDbContextなので、EF4.4のDBファーストでもDbContextベースにできるだろうと思い調べたところ、別途テンプレートをインストールすればDbContextベースにできることがわかりました。
手順は次の通り
- モデル(*.EDMX)ファイルを開く
- ダイアログで、右クリックして「コード生成項目の追加」をクリック
- オンラインテンプレートから「EF 4.x DbContext Generator for C#」を選ぶ
- T4テンプレートがインストールされる
- T4ファイルの下に、DbContextベースのコードが生成されるようになる
ちなみに上記テンプレートはMicrosoft製です。
この情報は、結局隣のチームの人から情報をもらったので「最初から聞いておけば良かった..」という感じでした。
EntityFrameworkを使わない人、5.0しか使っていない人にとっては不要なエントリですが、備忘録として書いておきます。