0

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); 

、一切のテーブルが作成されていません。エンティティフレームワークの新機能、ヘルプ?

答えて

0

データベースオブジェクト(テーブル、ビューなど)もデータも存在しないという点で、新しいデータベースはまだ「移入」されていないと思われます。

私はSQL CEに精通していませんが、CEから新しいサーバーにデータベースを移行する必要があります。開発環境から本番環境にプロジェクトを移動すると、各環境ごとにデータベースサーバーが異なるため、かなり頻繁に行います。

CEデータベースをSql Serverデータベースにコピーする方法をお読みください。 Sql Server Business Development Studioでプロジェクトを作成することができます。

+0

CEデータベースに保存する必要があるデータはありません。もしテーブルが存在しなければ、EFはそれがCEのためにやっていたようなモデルに基づいてそれらを生成するだろうと私は考えました。 CEでは、私は頻繁に私のデータベースを '新鮮なスタート'に削除し、EFはそれを自動的に再作成します。 – Danny

関連する問題