4

Visual Studio 2012 で新しい ADO.NET Entity Data Model を作成すると、無料の EF 5.x DbContext Generator コード生成アイテムが提供されます。つまり、ソリューション エクスプローラーで edmx 項目を展開すると、理論的には、POCO クラスと DbContext クラスを含む .cs ファイルを魔法のように生成するはずの .tt ファイルのペアが表示されます。

私の問題は、Visual Studio に実際にクラスを作成するよう説得できないことです。Model1.tt には空の Model1.cs が含まれており、Model1.Context.tt には DbContext オブジェクトが含まれていますが、エンティティに関連付けられている DbSet<> コレクションは含まれていません。

ソリューションから 2 つの .tt アイテムを削除し、デザイナー サーフェイスを右クリックして [コード生成アイテムの追加] を選択し、EF 5.x DbContext ジェネレーターを追加すると、すべてが正常に機能し、生成されたクラスが取得されます。

削除した *.tt ファイルが、実際に追加したファイルと同じであることを確認しました。

知恵の言葉はありますか?これはバグですか、それとも何か不足していますか?

ボブ

4

1 に答える 1

7

これを確認してください。VS2012 には、EDMX がプロジェクト ルートにない場合にこの動作を引き起こすバグがあります。したがって、回避策を使用してテンプレートを手動で追加するか、カスタム ツールを手動でトリガーして、リンクに記載されているようにコード生成を強制する必要があります。

于 2012-09-01T22:22:30.480 に答える