1

以前は VS 2010 で Entity Data Model を使用していましたが、現在 VS 2012 で問題が発生しています。まず、2012 Entity Data Model には .tt 拡張子を持つ 2 つの新しいファイルがあります。また、Designer.cs ファイルは空で、コード生成を有効にする方法に関するメッセージがありますが、コード生成を有効にすると、オブジェクトが既に存在すると表示されます。

CreateObjectSet(); もありません。

 using (MyEntities entitiesContext = new MyEntities())
            {
                var entitySet = entitiesContext.CreateObjectSet<T>();

            }

理由はわかりませんが、entitiesContext には .CreateObjectSet(); がありません。

誰かが何が起こっているのかを解明できるのだろうか。

4

1 に答える 1

3

VS 2012 の新しいエンティティ データ モデルは、デフォルトで、コード生成用の以前のカスタム ツールの代わりに T4 テンプレート (.tt) ファイルを使用します。生成されたコンテキストも、Visual Studio 2010 で使用される ObjectContext API ではなく、新しい DbContext API に基づいています (これがメソッドを持たない理由です。DbContext API の同等のメソッドは ですSet<T>)。T4 と DbContext API の両方が、EF を使用するための現在推奨されているアプローチです。

私の現在のマシンには VS 2012 がありませんが、試してみることができるのは、両方の .tt を削除し、で説明されているように古い世代を有効にすることです。.Desinger.cs.

于 2012-09-19T12:03:52.097 に答える