0

我有一個MVC3項目,我一直在使用SQL Compact Edition進行開發。我現在正在嘗試轉移到運行在不同機器上的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

相關問題