2012-09-11 10 views
21

VS 2010およびEF 4.4では、Entity FrameworkでDBContextジェネレータを使用すると、.ttファイルを移動および編集でき、異なるプロジェクトにあるPOCOオブジェクトあなたのDBContextファイルよりも。異なるプロジェクトのEntity Framework 5およびVisual Studio 2012 POCOクラス

私が話していることの例は、HereHereを参照してください。

これはVS2012/EF5では不可能と思われます。 POCOクラスはEDMXファイルの下位項目として生成されます。 Visual Studio内からファイルをコピーすることはできません。エクスプローラからファイルを移動しても、移動したファイルがコンパイル時に再作成されるため、移動できません。

ここで基本的なものはありませんか?

私はEF5でコード生成項目を使用していません(私はEF4.xを使用していましたが)。違いがありますか?

答えて

64

Visual Studio 2012では、ADO.NETエンティティデータモデルEDMXファイルのサブ項目としてコンテキストクラスとモデルクラスのT4テンプレートが含まれています。あなたがMyModel.edmxを追加する場合、例えば、以下のように、それは4つのサブ項目があります:

  1. MyModel.Context.tt
  2. (C#プロジェクトで)
  3. MyModel.Designer.cs
  4. MyModel.edmx .diagram
  5. MyModel.tt

MyModel.ttサブアイテムとしてPOCOエンティティを生成します。別のプロジェクトでエンティティを生成するには、次の手順に従います。

  1. 別のクラスプロジェクトを作成します。
  2. 新しい項目を追加するには、「EF 5.x DbContext Generator」テンプレートを選択します。 * .ttファイルが作成されます。たとえば、MyModel.ttなどです。
  3. 編集したテンプレートファイルを次のように

    他のプロジェクトで
    const string inputFile = @"MyModel.edmx"; // old value (remove) 
    const string inputFile = @"..\MyOtherProjectName\MyModel.edmx"; // new value 
    
  4. は、EDMXファイルを展開し、MyModel.tt上で右クリックし、[削除]を選択します。

これだけです。あなたは終わった。あるプロジェクトにモデルとコンテキスト、別のプロジェクトにエンティティがあります。

+4

最良の答えを、あなたは私を解きます最大の問題!!!! –

+1

幸いなことに、ありがとう。 –

+1

非常に素晴らしい、私は同じ質問があった。 –

2

Windowsエクスプローラで移動する必要があります。移動した.ttファイル内のEDMXファイルへのパスを編集します。一度それをすると動作します。 (私はそれが上記ではないことを知っているが、私が試したときに何か間違ったことをしているに違いない)

6

には、以下の記事をチェックアウト:Visual Studio 2012 - Can't move EF .tt files

それはあなたがassoicated .csprojファイル内.ed​​mxファイルに.ttファイルの依存関係の情報を削除することができますどのように語っています。これにより、ソリューションエクスプローラから.ttファイルをドラッグできます。

.ttファイルの先頭にあるファイルパスを必ず更新してください。前の回答で説明し、以下に示すようにEDMX:

const string inputFile = @"..\EFTest\EFTestModel.edmx"; 

実際のいくつかの部分とステップと正しく動作POCOクラスの分離を防ぐことができ、任意の単一の1が欠けがあります。 VS.NET 2012でT4テンプレートから生成

の分離Entity FrameworkのPOCOクラス:私はあなたが以下の表示ができ、全体のプロセスの詳細ブログの記事作成
http://allen-conway-dotnet.blogspot.com/2013/01/separating-entity-framework-poco.html

+0

プロジェクトファイルのエントリの一部も編集する必要がありましたが、同様の問題がありました。参照:http://stackoverflow.com/questions/12200258/visual-studio-2012-cant-move-ef-tt-files/16216001#16216001 – GrandMasterFlush

+0

+1。素晴らしい説明。 –

関連する問題