1

初めてVS2012とEF5を使用しています。新しい機能を使用せずに、 MVC3 、 EF4.1 アプリケーションと同じようにアプリケーションを開発しました。私はすでにデータベースを持っています.db context、models、controller、viewsを作成しました。すべてがうまく機能していました。次に、データベースに新しいテーブル Directorate を作成し、そのモデルとデータベース マッピングを dbcontext に作成しました。コントローラーを作成するときに、何が起こるかを確認するための経験として、「Entity Frameworkを使用した読み取り/書き込みアクションを備えたMVCコントローラー」を選択しました。コンテキストとモデルを選択しました。アプリを実行すると、DirectorateModel という名前で db に新しいテーブルが作成され、コンテキストにマッピングも挿入されました。私はすでにテーブルとマッピングを作成しているので、このアクションのために追加された新しい機能をそれぞれ削除しました。つまり、テーブル、コンテキストマッピング、コントローラー、およびビューを削除しました。

しかし、今アプリケーションを実行するとエラーが発生します:

データベースが作成されてから、'ArchivingDBContext'コンテキストをサポートするモデルが変更されました。Code First Migrations を使用してデータベースを更新することを検討してください (http://go.microsoft.com/fwlink/?LinkId=238269)

上記のURLにアクセスしましたが、使用したくないコードファーストの移行に関するものです。この問題を解決する方法を教えてください。間違ったスキャフォールディング オプションを選択したために作成されたものを削除する必要があると思います。

アプリケーションを以前の動作状態で実行したいだけです。

4

3 に答える 3

0

正しいデータベースイニシライザーを設定する必要があります。

Database.SetInitializer<YourContextType>(new CreateDatabaseIfNotExists())

そしてこの作品

于 2013-01-13T12:28:44.303 に答える
0

.EDMX モデルから Directorate エンティティを削除し、スキャフォールディングを使用して作成したコントローラー/ビューを削除します。

必要に応じてデータベースを変更し、VS モデル デザイナーに移動して (.EDMX モデルを開くだけ)、Update model from database変更を保存します。

これで、心配することなく、スキャフォールディングによってビュー/コントローラーを追加できます...

于 2013-07-27T10:51:20.547 に答える
0

次のように呼び出すことで修正できます。

Database.SetInitializer(null);

Global.asax の Application_Start メソッドで

そのような既存のデータベースの上に初期化する必要はありません。

参照:この質問

于 2013-03-30T00:02:36.150 に答える