建立連接字串以及使用 SQL Server LocalDB

作者 :Rick Anderson

注意

本教學課程的更新版本可使用最新版的Visual Studio在這裡取得。 新的教學課程會使用ASP.NET Core MVC,以提供本教學課程的許多改進功能。

本教學課程可讓您了解 ASP.NET Core MVC 與控制器和檢視。 Razor Pages 是 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 Database Engine,可在使用者模式中視需要啟動並執行。 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 此專案) 。 如需詳細資訊,請參閱SQL Server ASP.NET Web 應用程式的連接字串

開啟應用程式根 目錄Web.config 檔案,如下所示。 (不是Views資料夾中的Web.config檔案。)

顯示已選取 [方案總管] 視窗和 [Web 點設定] 並以紅色圓圈的螢幕擷取畫面。

<connectionStrings>尋找 專案:

顯示程式碼和連接字串元素以紅色圓圈的螢幕擷取畫面。

將下列連接字串新增至 <connectionStrings>Web.config 檔案中的 專案。

<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 服務教學課程。

連接字串的名稱必須符合 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 資料庫,並在此案例 MvcMovie.Models.MovieDBContext 中建立DbCoNtext類別的完整名稱 () 。 只要資料庫具有 ,就可以命名任何您想要的資料庫 。MDF 尾碼。 例如,我們可以將資料庫命名為 MyFilms.mdf

接下來,您將建置新的 MoviesController 類別,讓您可用來顯示電影資料,並允許使用者建立新的電影清單。