1

EF 4 Code First を使用する MVC プロジェクトをアップロードしようとしています。

EF はデータベース自体を作成することを厳密に要求しているのに対し、管理コンソールでしかデータベースを作成できないという問題に遭遇しました。

作成した (既存の空の) データベースを EF で使用するにはどうすればよいですか? 接続文字列は正しく、接続できますが、次のエラーが発生します。

Model compatibility cannot be checked because the database does not contain
model metadata. Model compatibility can only be checked for databases created
using Code First or Code First Migrations.
4

2 に答える 2

1

イニシャライザとして DropCreateDatabaseIfModelChanges がある場合、EF がモデルに変更があるかどうかを確認する方法は、データベースに保存されているモデル メタデータを調べて、変更があるかどうかを確認することです。以前に作成されたデータベースにはそのようなメタデータが含まれていなかったため (EF なしで作成されたため)、比較するものがなく、そのエラーが発生しました。

(コンソールを使用せずに) 今後この問題を回避するには、EF 4.3 の MigrateDatabaseToLatestVersion などの別の初期化子を使用します。私は自分のプロジェクトの既存のデータベースでそれを行いましたが、うまくいきました。

于 2012-09-24T15:12:32.690 に答える
0

さて、NuGet を使用して次のように動作するようになりました。

PM> add-migration Initial

それから私はで変更AutomaticMigrationsEnabled = false;しましたConfiguration.cs。それで:

PM> Update-Database

そしてそれは文句を言わずに仕事をしました。その後、アプリを再度実行したところ、機能しました。

于 2012-09-24T13:27:53.590 に答える