SQL Compact Edition を使用して、この時点まで開発してきた MVC3 プロジェクトがあります。現在、別のマシンで実行されている SQL Server 2008 R2 に移行しようとしています。Visual Studio を使用してこのデータベースに接続し、既存の接続文字列を置き換えるために使用した接続文字列を取得しました。
<add name="CPContext" connectionString="Data Source=CSP111;Initial Catalog=CONTESTPLATFORM;Persist Security Info=True;User ID=sa;Password=<%MY PASSWORD%>" providerName="System.Data.SqlClient" />
<!--Old Connection String
<add name="CPContext" connectionString="Data Source=|DataDirectory|ContestPlatform.sdf" providerName="System.Data.SqlServerCe.4.0" />
-->
初期化クラスを使用して、データベースにいくつかの初期値をシードしています。これは、Global.asax.cs ファイルで次のように呼び出されます。
protected void Application_Start()
{
Database.SetInitializer<CPContext>(new ContestPlatformInitializer());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
プロジェクトを実行しようとすると、データベースへの最初のアクセス試行時に例外がスローされます。
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.
これは、例外をスローしているホームページのコードです。
IQueryable<Submission> submissions = db.Submissions.Where(s => s.ContestId == contestId && s.Entry.isPrivate != true && s.Entry.isApproved);
データベースにアクセスすると、テーブルが作成されていません。エンティティ フレームワークは初めてですが、ヘルプはありますか?