我有一個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);
當我去到我的數據庫,沒有創建表。新的實體框架,幫助?
從CE數據庫中不需要保存任何數據。我想如果表格不存在,EF會根據它爲CE所做的模型生成它們。有了CE,我經常會刪除我的數據庫以'開始新鮮',EF會自動重新創建它。 – Danny