15

VS2012とEF5を使用しています。既存のデータベースからPOCOクラスを作成したい既存のデータベースがあります。手順に従って、ADO.NETエンティティデータモデルをプロジェクトに追加しました。ウィザードを実行して、既存のデータベースを使用しました。次に、デザイナーを開いた状態でedmxファイルとttファイルを作成しました。ただし、POCOオブジェクトを作成して使用したいと思います。Microsoftのサイトには、POCO Entity Framework Generatorは廃止されたため、DBContextGeneratorを使用する必要があると記載されています。POCOクラスを生成するために使用する手順がわかりません。edmxデザイナーしか見えません。私は本当にedmxファイルさえ必要ではなく、代わりにPOCOクラスだけが必要です。EF5およびVS2012を使用して既存のデータベースからPOCOクラスを作成するにはどうすればよいですか?

4

2 に答える 2

14

EF 5.x DbContextFluentGeneratorを使用する

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

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

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

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

ただし、 edmxデータモデルへのパスを手動で設定する必要があります。これらの各テンプレートには行がありstring inputFile = @"$edmxInputFile$";ます。ここにedmxファイルの名前を入力する必要があります。

string inputFile = @"Northwind.edmx";

于 2012-11-10T23:49:35.100 に答える
9

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

  • ADO.NETエンティティデータモデルをプロジェクトに追加して、既存のデータベースからモデル(edmx)を生成します(詳細については、こちらを参照してください)。
  • その後

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

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

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

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

[OK]をクリックします。

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

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

于 2013-01-10T16:00:59.377 に答える