web-dev-qa-db-ja.com

Entity Frameworkモデルを更新した後、Visual Studioに変更が表示されない

EF 5.0モデルに変更を加えても、VSはその変更を認識していないようです。モデルにうまく表示される新しいテーブルを追加しようとしましたが、どこかで使用しようとすると、テーブルがインテリセンスに表示されず、使用できません。

また、列のデータ型を変更しようとしましたが、.edmxモデルファイルを見ると再び表示されますが、Visual Studioでは間違ったデータ型を割り当てようとしているため、そのフィールドでコンパイラエラーが発生します。

EDMXを完全に削除して再作成すると、変更は正常に機能します。しかし、「データベースからモデルを更新する」だけで再構築できるようになるたびに、データベースから再生成するのは面倒です。

EFでこれらの問題を経験したことはありません。誰もがこの問題の原因または修正を知っていますか?

ありがとう。

51
Kyle

これがフォルダーにあるedmxファイルのバグである場合、現在修正されています-VS 2012 Update 1をダウンロードしてインストールします。次から入手できます: http://www.Microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-update

16
Pawel

最初にプロジェクトをビルドし、成功した場合は、"model.tt"ファイルを右クリックしてカスタムツールの実行を選択します。それを修正します。

再びプロジェクトをビルドし、"model.context.tt"カスタムツールを実行するようにポイントします。 DbSetリストを更新します。

70
Mahdi Shahbazi

これは明らかに、Edmxファイルがフォルダー内にある場合にモデルが更新されないというEntity Frameworkのバグです。現在利用可能な回避策は次のとおりです。

  1. VS 2012 Update 1をインストールすると、バグが修正されます。
  2. Update 1をインストールする立場にない場合は、model.tt T4テンプレートファイルを右クリックして、[カスタムツールの実行]をクリックする必要があります。これにより、クラスが更新されます。

それがそこに誰かを助けることを願っています。

リンク: http://thedatafarm.com/blog/data-access/watch-out-for-vs2012-edmx-code-generation-special-case/

15
Ghlouw

しかし、model.ttファイルを右クリックして「カスタムツール」を実行しても何の違いもありませんでしたが、メニュー項目「BUILD >すべてのT4テンプレートを変換します。」それは私のためにそれをしました

12
Kristian

モデルクラスを生成するT4テンプレートである<XXX>Model.ttファイルが必要です。

別のプロジェクトにある場合、edmxファイルを保存しても更新されません。

とにかく、ソリューションエクスプローラーで右クリックしてRun Custom Toolを選択してください

7
Nicholas Butler

.ttファイルを右クリックして[カスタムツールの実行]を選択すると、更新されます。 see image

7
Tshilidzi Mudau

VS2013でも同様の状況にあったため、この答えを探しました。私の場合、単純な「Clean Solution」で古い定義がすべて削除されていることがわかりました。

3
woodvi

また、model.ttファイルの下にクラスが生成されないという問題も発生しました。私の場合、SQL2012でDBを構築した方法に問題がありました。テーブルの列をNULLキーに設定しましたが、これも外部キーでした。これを行うことができるはずですが、EF5で問題が発生しました。

これがクリアされ、データベースからダイアグラムが更新されるとすぐに、それらが再表示されました。

EF5 VS2013

0
CF5

N-Tieredプロジェクトで働いていますか?その場合は、使用する前にデータレイヤー(またはEDMXファイルが保存されている場所)を再構築してください。

0
Middas