8

エンティティ フレームワーク 4 を使用する既存の MVC 3 アプリケーションがあります。モデルはデータベース ファースト モードを使用して生成されました。クラスを生成する「自動コード生成」もあります。

今日、私は自分のデータベースに簡単な変更を加えました。フィールドが「int」から「float」になりました。.edmx に移動し、右クリックして [データベースからモデルを更新] を選択しました...

でも畑を見てみると、全然変わっていませんでした。すべてを再確認しましたが、データベースは変更されていますが、モデルは変更されていません...これは手動で行う必要があるということですか?

以前 (2 か月前など) に 2 回更新したことを覚えていますが、その時点では機能しているように見えます... 何が壊れている可能性があり、確認する必要がありますか?

編集

edmx diff ファイルを subversion で見ると変更されているように見えますが、「グラフィカル モード」で見ると変更はありません。また、生成されたコードは更新されません。

-          <Property Name="PreparationTime" Type="int" Nullable="false" />
+          <Property Name="PreparationTime" Type="float" Nullable="false" />
4

5 に答える 5

10

これは正常な動作です。;-)

「データベースからモデルを更新」ウィザードを実行しても、DB 側を変更するだけでは、概念モデルは変更されません。EDMX がどのように構築され、どのように進化する必要があるかを説明するこのSO 回答をご覧ください。

于 2013-05-29T08:14:34.553 に答える
3

チェックリスト

  • Outputコマンド中にエラーが発生したかどうかウィンドウを確認しますUpdate model from database
  • .edmx プロパティ ウィンドウからデータベース接続文字列を確認します。
  • それを引き起こしているカスタムコード生成テンプレートはありますか?
  • .edmx のコピーをバックアップしてから、変更されたエンティティを .edmx から削除してから再度追加してみてください
于 2013-05-29T01:02:02.487 に答える
0

上記のすべての回答で問題は解決しませんでした。これが私の問題を修正したものです:

警告セクションを確認してください。モデルで更新/追加するテーブルに必要な要素がありません (主キーがないなど)。データベース テーブルを更新して警告を修正してから、モデルを更新します。

于 2020-07-27T13:15:35.917 に答える