SQLコンパクトエディションを使用して、これまで開発してきたMVC3プロジェクトがあります。私は今、別のマシンで実行されているSQL Server 2008 R2に移行しようとしています。 Visual Studioでこのデータベースに接続し、既存の接続文字列を置き換えるために使用した接続文字列を取得しました。ASP.NET MVC3、SQL Server CEからServer 2008 R2への移行
<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);
}
は今、例外がスローされます。
これは例外をスローして、私のホームページ上のコードである:私は私のデータベースに行くとき
IQueryable<Submission> submissions = db.Submissions.Where(s => s.ContestId == contestId && s.Entry.isPrivate != true && s.Entry.isApproved);
、一切のテーブルが作成されていません。エンティティフレームワークの新機能、ヘルプ?
CEデータベースに保存する必要があるデータはありません。もしテーブルが存在しなければ、EFはそれがCEのためにやっていたようなモデルに基づいてそれらを生成するだろうと私は考えました。 CEでは、私は頻繁に私のデータベースを '新鮮なスタート'に削除し、EFはそれを自動的に再作成します。 – Danny