[ASP.NET MVC] 建立ASP.NET MVC 的 SQL Server LocalDB
建立 SQL Server LocalDB
先前建立的MovieDBContext Class,是用來連接資料庫,並將資料庫配對到Movie顯示。
至於將指定哪一個連接的資料庫呢?實際上,並沒有指定要連接哪一個資料庫,Entity Framework預設指定為LocalDB。
接下來,我們將在 Web.config 加入指定的連線字串。
什麼是 SQL Server Express LocalDB ?
LocalDB 是 SQL Server Express 的執行模式,專供開發人員使用。LocalDB安裝時會複製一個 SQL Server Express 執行個體所需的最少檔案。 安裝 LocalDB 後,開發人員可透過使用特殊連接字串來起始連接。 連接時,就會自動建立及啟動必要的 SQL Server 基礎結構,應用程式不需複雜或耗時的組態工作即可開始使用資料庫。 Developer Tools 為開發人員提供 SQL Server Database Engine,讓他們撰寫和測試 Transact-SQL 程式碼,而不需要管理 SQL Server 的完整伺服器執行個體。LocalDB使用.MDF檔案作為資料庫。通常情況下,LocalDB資料庫的.MDF檔案都存放在Web項目中的App_Data資料夾裡。
不建議在建立Web應用程序使用的SQL Server Express。LocalDB尤其不應被用於建立Web應用程序,因為它無法與IIS作用。但是,數據庫的LocalDB可以很容易地遷移到SQL Server或SQL Azure上。
在Visual Studio2013,LocalDB會預設與Visual Studio一起安裝。預設情況下,Entity Framework會依照連線字串的名稱,找尋相同名稱的Class(在這個專案如:MovieDBContext)。
開起下圖所示,應用程式目錄底下的Web.config 資料夾( 不是View 資料夾底下的Web.config )
開啟後,找到<connectionStrings>的標籤
在Web.config 的<connectionStrings>標籤中,增加以下連線字串。
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
在Web.config中,添加新的ConnectionString 後,程式碼如下:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MyMVC-20160523113810.mdf;Initial Catalog=aspnet-MyMVC-20160523113810;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
這兩個連線字串非常的相似,第一個名稱為DefaultConnection的連線字串是用來控制誰可以取得會員資料庫的應用程式 。
第二個我們所添加的,名稱為MovieDBContext的連線字串。指定了在App_Data資料夾中的LocalDB資料庫,名為Movies.mdf的一個資料庫中。
連線字串的命名必須與 DbContext Class的名稱配對。
事實上,並不需要增加MovieDBContext的連線字串。假如不指定連線字串的話,Entity Framework會依照目錄中的DbContext class,產生一個LocalDB的資料庫。(例如:MyMVC.Models.MovieDBContext)
而你也可以命名你的資料庫名稱,只要是 .MDF 結尾即可。例如,我們也可以命名資料庫名稱為 MyFilms.mdf
接下來,將會建立一個新的MoviesController的Class,用來顯示與建立電影清單。
下一篇 從Controller取得Model的資料