53

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

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

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

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

ありがとう。

4

10 に答える 10

16

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

于 2012-11-28T07:22:00.210 に答える
15

これは明らかに、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/

于 2012-11-28T06:29:09.770 に答える
7

<XXX>Model.ttモデルクラスを生成するT4テンプレートであるファイルがどこかにあるはずです。

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

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

于 2012-11-19T19:51:38.670 に答える
3

VS2013でも同様の状況があったため、この回答を検索しました。私の場合、単純な " Clean Solution" がすべての古い定義を消去することがわかりました。

于 2015-05-19T17:09:45.663 に答える
1

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

于 2012-11-19T19:42:16.813 に答える
0

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

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

EF5 VS2013

于 2015-10-01T14:11:41.507 に答える