13

バックグラウンド

  • Visual Studio 2012
  • VS2012で作成された新しいModel.EDMXファイル
  • 以前に作成したEDMXから新しいものにEDMXxmlの一部をコピーしました

問題/質問

今。EDMX(TT変換、カスタムツールなど)は、DbContextクラス(Model.tt/Model.Context.ttファイルの下)ObjectContextクラス(Model.designer.csファイルを介して)の両方を生成しています。下の画像を参照してください。

Model.ttファイルとDesigner.csファイルの両方が私のエンティティを定義しています

すべてが正常にビルドされ、DbContextで動作します(ただし、ビルドの直前にDesigner.csファイルを削除した場合のみ)が、Designer.cs(およびそのObjectContextベースのコード)は引き続き表示されます。この動作を停止するにはどうすればよいですか?!

4

4 に答える 4

8

Designer.csファイルによるObjectContextの生成を停止する方法はわかりませんでしたが、問題にならないようにする方法はわかりました。ビルドアクションを「コンパイル」ではなく「なし」に設定するだけです。

ビルドアクションをなしに設定します

于 2012-10-25T18:17:20.250 に答える
3

ファイルは、の.ttコード生成戦略に関係なくコードを生成します.edmx.edmx彼らはファイルの変更を聞きます。少なくともこれは彼らが私のために働いている方法です。

したがって、コード生成戦略をNoneに変更する.edmxことで、.designer.csファイルに有用なコンテンツを空にします。

次に、プロジェクトファイルを開き、を表すノードを見つけます。.edmxデフォルトでは、EntityDeployノードに含まれています。つまり、ビルドアクション値であり、そのGeneratorサブキーを削除します。

于 2013-03-13T06:55:46.050 に答える
1

通常のEFコードファーストプロジェクトでは、コード生成戦略は「なし」であり、ObjectContextは生成されません。

あなたの場合、コード生成戦略が「デフォルト」に設定されているように見えます。

でObjectContextの生成を停止するxxxx.Designer.csには、edmxファイルに移動し、コード生成戦略を「デフォルト」から「なし」に変更します。

あなたが検査する場合xxxx.Designer.cs

// Default code generation is disabled for model 'C:\Users\xyxy\xyxyxy.Web\Models\xyxy.edmx'. 
// To enable default code generation, change the value of the 'Code Generation Strategy' designer
// property to an alternate value. This property is available in the Properties Window when the model is
// open in the designer.
于 2013-06-14T11:39:48.423 に答える
0

問題は、ファイルプロパティのフィールドにEntityModelCodeGenerator値があることだと思います。その値を削除するだけです。Custom Tool.edmx

EF6プロジェクトとして始めたプロジェクトには価値がなく、ファイルもないことに気づいたので、これだと思いますが.designer.cs、EF4からアップグレードした2つでは、両方に価値とデザイナーがありますファイル。

<Generator>(これは、基になるファイルのタグに相当し.csprojます。)

于 2015-12-22T20:58:26.587 に答える