注意
本教學課程的更新版本可在此取得,它使用最新版的 Visual Studio。 新的教學課程會使用 ASP.NET Core MVC,它在本教學課程提供多種改良。
本教學課程可讓您了解 ASP.NET Core MVC 與控制器和檢視。 Razor 頁面是 ASP.NET Core 中的新替代方案,它是以頁面為基礎的程式設計模型,可讓 Web UI 的建立更容易且更有效率。 建議您在嘗試使用 MVC 版本之前,先試試 Razor 頁面教學課程。 Razor 頁面教學課程:
- 比較容易學習。
- 涵蓋更多功能。
- 是開發新應用程式的建議方法。
建立連接字串以及使用 SQL Server LocalDB
您建立的 MovieDBContext 類別會負責連線到資料庫以及將 Movie 物件對應到資料庫記錄。 不過,您可能會遇到的問題是如何指定它要連線的資料庫。 您實際上不需要指定要使用的資料庫,因為 Entity Framework 預設會使用 LocalDB。 在本節,我們會在應用程式的 Web.config 檔案明確新增連接字串。
SQL Server Express LocalDB
LocalDB 是 SQL Server Express 資料庫引擎的輕量化版本,可依需求啟動,並在使用者模式中執行。 LocalDB 會以 SQL Server Express 的特殊執行模式來執行,讓您將資料庫當作 .mdf 檔案來使用。 一般而言,LocalDB 資料庫檔案會保留在 Web 專案的 App_Data 資料夾。
我們不建議在生產 Web 應用程式使用 SQL Server Express。 LocalDB 尤其不應用於 Web 應用程式的生產環境,因為它不是設計來搭配 IIS。 不過,LocalDB 資料庫可以輕鬆地移轉至 SQL Server 或 SQL Azure。
在 Visual Studio 2017中,LocalDB 預設會隨 Visual Studio 一起安裝。
根據預設,Entity Framework 會尋找與物件內容類別有相同名稱的連接字串 (在此專案是 MovieDBContext)。 如需詳細資訊,請參閱 ASP.NET Web 應用程式的 SQL Server 連接字串。
開啟如下所示的應用程式根目錄 Web.config 檔案。 (並非 Views 資料夾的 Web.config 檔案。)

尋找 <connectionStrings> 元素:

將下列連接字串新增至 Web.config 檔案中的 <connectionStrings> 元素。
<add name="MovieDBContext"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf"
providerName="System.Data.SqlClient"
/>
下列範例所示為 Web.config 檔案的一部分,其中已新增連接字串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" />
<add name="MovieDBContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
這兩個連接字串非常相似。 第一個連接字串名為 DefaultConnection,且在成員資格資料庫中用於控制可存取應用程式的成員。 您新增的連接字串會指定位於 App_Data 資料夾中名為Movie.mdf 的 LocalDB 資料庫。 在本教學課程中,我們不會使用成員資格資料庫,如需詳細了解成員資格、驗證和安全性,請參閱我的教學課程使用驗證和 SQL DB 建立 ASP.NET MVC 應用程式,並部署至 Azure App Service。
連接字串的名稱必須符合 DbContext 類別的名稱。
using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
您實際上不需新增 MovieDBContext 連接字串。 如果您未指定連接字串,Entity Framework 會在使用者目錄建立 LocalDB 資料庫,並使用完全符合資格的 DbContext 類別名稱 (在此例中為 MvcMovie.Models.MovieDBContext)。 只要資料庫有 MDF 後綴,您就可以將資料庫命名為任何名稱。 舉例來說,我們可以將資料庫命名為 MyFilms.mdf。
接下來,您可建立新的 MoviesController 類別來顯示電影資料,並允許使用者建立新的電影清單。