把 EFMVC 專案的 SQL Server Express 資料庫升級成 LocalDB

EFMVC 是個開放原始碼專案,目的在於示範以 ASP.NET MVC 和 Entity Framework 5 Code First 模型來開發多層式(multi-layered)Web 應用程式。我用 Visual Studio 2012 開啟此範例專案時,會出現警告訊息,告訴我目前專案所使用的資料庫是 SQL Server Express,但我的電腦並沒有安裝這個軟體。

警告訊息如下圖:


訊息中有提示如何將既有專案的資料庫升級成 SQL Server LocalDB Express。然而從 CodePlex 網站下載回來的 EFMVC 壓縮檔案裡面並沒有附任何資料庫,因為它是採用 Entity Framework Code First 的開發模型。

由於是 Code First 模型,當 EFMVC 應用程式第一次執行時,便會自動建立資料庫--前提是資料庫連線字串必須正確無誤。

所以解決方法很簡單,只要找出專案中的應用程式組態檔,修改連線字串就行了。例如 EFMVC.Web.csproj 的 web.config 裡面的 EFMVCDataContex 連線字串可以改成:

connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\MyLocalDB\EFMVC.mdf;Integrated Security=True;" providerName="System.Data.SqlClient"

其中 (LocalDB)\v11.0 的 "v11.0" 就是 SQL Server 2012 Express LocalDB 的預設執行個體的名稱。

此外,我們也可以利用 Visual Studio 2010 的 Server Explorer 來建立 LocalDB 的連線字串和資料庫檔案。參考下圖:



點 Modify Connection... 之後,會開啟對話窗,顯示目前的連線設定:


點 Data source 欄位右邊的 Change 按鈕,然後選擇 Microsoft SQL Server Database File:


 接著輸入資料庫檔案的完整路徑名稱:


此時只要在上圖的視窗中點 Advanced... 按鈕,就可以查看連線字串。如下圖所示:


視窗下方的文字方塊會顯示連線字串,可以直接複製再貼到應用程式組態檔中。

回到上一層的「Modify Connection」對話窗時,如果按 OK 來關閉對話窗,而指定之資料庫檔案不存在,它會詢問是否要幫你建立資料庫檔案。前面提過,EFMVC 是用 Code First 模型,所以此時無論有沒有先建立資料庫,程式都可以順利執行。

延伸閱讀

沒有留言:

技術提供:Blogger.
回頂端⬆️