VS2012とEF5を使用しています。既存のデータベースからPOCOクラスを作成したい既存のデータベースがあります。手順に従って、ADO.NETエンティティデータモデルをプロジェクトに追加しました。ウィザードを実行して、既存のデータベースを使用しました。次に、デザイナーを開いた状態でedmxファイルとttファイルを作成しました。ただし、POCOオブジェクトを作成して使用したいと思います。Microsoftのサイトには、POCO Entity Framework Generatorは廃止されたため、DBContextGeneratorを使用する必要があると記載されています。POCOクラスを生成するために使用する手順がわかりません。edmxデザイナーしか見えません。私は本当にedmxファイルさえ必要ではなく、代わりにPOCOクラスだけが必要です。EF5およびVS2012を使用して既存のデータベースからPOCOクラスを作成するにはどうすればよいですか?
2 に答える
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";
これを行うプロセスは、今ではかなり合理化されているようです。受け入れられた回答からの手順は、EDMXデザイナー自体から簡単に実行できるようになりました。基本的に、
- ADO.NETエンティティデータモデルをプロジェクトに追加して、既存のデータベースからモデル(edmx)を生成します(詳細については、こちらを参照してください)。
- その後
エンティティデザイナで.edmxファイルを開きます。
エンティティデザイナサーフェスの空の領域を右クリックし、[コード生成アイテムの追加]をポイントします。
[新しいアイテムの追加]ダイアログで、[オンラインテンプレート]を選択し、[オンラインテンプレートの検索]テキストボックスに「DBContext」と入力します。
テンプレートに適切なバージョンを選択します(Entity Framework 5.0をターゲットにする場合は5.0)。
[OK]をクリックします。
どうやら、これですべての作業が実行されます。ここで引用されている手順は、EF 5.x DbContext Fluent Generatorのインストールが必要であるため、オンラインテンプレートを参照しています。すでにインストールされている場合は、オンラインテンプレートで検索する必要はありませんが、インストール済みテンプレートで検索する必要があります。
詳細については、このページの「DbContextGeneratorテンプレートを使用してオブジェクトレイヤーコードを生成するには」のセクションを確認してください。