web-dev-qa-db-ja.com

Entity Framework 5-既存のデータベースからPOCOクラスを生成する方法

VS 2012とEF 5を使用しています。既存のデータベースからPOCOクラスを作成したい既存のデータベースがあります。手順に従って、ADO.NETエンティティデータモデルをプロジェクトに追加しました。既存のデータベースを使用するためにウィザードを実行しました。次に、デザイナーを開いた状態でedmxファイルとttファイルを作成しました。ただし、POCOオブジェクトを作成して使用したいと思います。 Microsoftのサイトでは、POCOエンティティフレームワークジェネレーターは廃止されているので、DBContextジェネレーターを使用する必要があります。 POCOクラスの生成に使用する手順がわかりません。 edmxデザイナーのみが表示されます。私は本当にedmxファイルを必要としませんが、代わりにPOCOクラスだけを望みます。 EF 5およびVS 2012を使用して既存のデータベースからPOCOクラスを作成するにはどうすればよいですか?

15
user31673

使用 EF 5.x DbContext Fluent Generator

オンラインテンプレートから追加できます。

  • 既存のデータベースからedmxを生成する
  • 選択する Add New Item
  • POCOのオンラインテンプレートを検索
  • EF 5.x DbContext Fluent Generatorを追加する

プロジェクトに3つのT4テンプレートが追加されます。

  • XXX.Context.tt-DbContextから継承されたコンテキスト
  • XXX.Entities.tt-POCOエンティティ
  • XXX.Mappings.tt-各エンティティの流暢なマッピング

[〜#〜] but [〜#〜]edmxデータモデルへのパスを手動で設定する必要があります。これらのテンプレートにはそれぞれstring inputFile = @"$edmxInputFile$";。ここにedmxファイルの名前を指定する必要があります。

string inputFile = @"Northwind.edmx";

14

これを行うプロセスは、今ではかなり合理化されているようです。承認された回答の手順は、EDMXデザイナー自体から簡単に実行できるようになりました。基本的に、

  • プロジェクトにADO.NET Entity Data Modelを追加して、既存のデータベースからモデル(edmx)を生成します(詳細については here を参照)。
  • その後

エンティティデザイナーで.edmxファイルを開きます。

エンティティデザイナー画面の空の領域を右クリックし、[コード生成アイテムの追加]をポイントします。

[新しい項目の追加]ダイアログで、[オンラインテンプレート]を選択し、[オンラインテンプレートの検索]テキストボックスにDBContextと入力します。

テンプレートに適切なバージョンを選択します(Entity Framework 5.0を対象にする場合は5.0)。

OKをクリックします。

これは明らかにすべての作業を行います。ここで引用されている手順は、EF 5.x DbContext Fluent Generatorのインストールが必要であるため、オンラインテンプレートを参照しています。すでにインストールされている場合は、オンラインテンプレートではなく、インストールされているテンプレートで検索する必要はありません。

詳細については、 this ページのセクション「DbContextジェネレーターテンプレートを使用してオブジェクトレイヤーコードを生成するには」を確認してください。

9
Alen Siljak