読者です 読者をやめる 読者になる 読者になる

EntityFramework4のDBファーストでDbContextのコードを生成

.NET

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しか使っていない人にとっては不要なエントリですが、備忘録として書いておきます。