7

EntityFramework5データベースを最初に.netFramework4.5を対象とするVisualStudio2012のクラスライブラリに追加したいと思います。キー入力する必要のあるすべてのラベルと混同しています。

  • ADO.NETエンティティデータモデルをプロジェクトに追加するときのEDMXファイル名。'MyEF.edmx'を入れました。
  • 接続文字列を設定ファイルに保存する場合。「MyEntities」を入れました。
  • モデルに含めるテーブルをいくつか選択した後、モデルの名前空間を入力するためのテキストボックスがあります。「MyModel」を入れました。
  • MyEF.edmxファイルのプロパティ「カスタムツール名前空間」。'TheEF'を入れました。
  • MyEF.Context.ttファイルのプロパティ「カスタムツール名前空間」。'TheContext'を置きます。
  • MyEF.ttファイルのプロパティ「カスタムツール名前空間」。'TheModel'を入れました。

ADO.NETエンティティデータモデルデザイナーでMyEF.edmxを開き、MyModelのプロパティを確認すると、次のようになります。

  • 'MyEntities'で埋められたエンティティコンテナ名。したがって、接続文字列名はここにあります。
  • 'MyModel'で満たされた名前空間。これは、テーブル選択テキストボックスから取得されます。

edmxカスタムツールの名前空間に何かを入れても何も起こらないようです。ソースコードフォルダ全体をgrepすると、vbprojファイルでしか見つからなかったため、この結論が得られました。

'TheModel'をMyEF.ttカスタムツール名前空間に入れると、タイプ'MyTable'(これは私のデータベーステーブルの名前です)が定義されていないというエラーがMyEF.Context.vbから生成されます。

誰かが各ラベルの目的を説明できますか?

この1つのedmxによって生成されたすべてのクラス(DbContext、モデルなど)を1つの名前空間'MyEF'に入れたい場合、それらの各場所に何を入れる必要がありますか?

4

1 に答える 1

19

さまざまなプロパティは次のように使用されます。

  • EDMXファイル名->EDMXファイル名に使用
  • 接続文字列名->構成ファイルの接続文字列名、およびEDMXの概念モデル(CSDL)部分のコンテナー名に使用されます
  • モデル名前空間->EDMXの概念モデル(CSDL)部分の名前空間、および.Storeが追加されたストアモデル(SSDL)部分に使用されます
  • EDMXファイルのカスタムツール名前空間->T4世代のPOCOエンティティを使用する場合、これは何にも使用されないと思います。EF1スタイルの組み込みコード生成を使用する場合、このプロパティを設定すると、生成されたすべてのファイルの.NET名前空間が設定されます。
  • .Context.ttファイルのカスタムツール名前空間->コンテキストのソースファイルで使用される.NET名前空間
  • .ttファイルのカスタムツール名前空間->エンティティのソースファイルで使用される.NET名前空間

.Context.ttと.ttのカスタム名前空間を異なるものに設定すると、コンテキストはエンティティタイプとは異なる名前空間で生成され、すぐにコンパイルされないことに注意してください。ここで異なる名前空間を使用する場合は、.ttファイルを更新できますが、多くの場合、両方に同じ名前空間を使用するだけです。

また、コードを再生成するには、プロパティを変更した後、各.ttファイルのコンテキストメニューから[カスタムツールの実行]を選択する必要がある場合があることに注意してください。

于 2013-02-04T22:19:04.530 に答える