共用方式為


使用 Code First 移轉來植入資料庫

下載已完成的專案

在本節中,您會在 EF 中使用 Code First 移轉將測試資料植入資料庫。

[工具] 功能表選取 [NuGet 套件管理員],然後選取 [套件管理員主控台]。 在「套件管理員控制台」視窗中,輸入以下命令:

Enable-Migrations

此命令會將名為 Migrations 的資料夾新增至您的專案,並在 Migrations 資料夾中新增名為 Configuration.cs 的程式碼檔案。

方案總管螢幕擷取畫面會顯示資料夾階層,其中 [Configuration dot c s] 檔案以藍色醒目提示。

開啟 Configuration.cs 檔案。 使用 陳述式新增下列內容。

using BookService.Models;

然後將以下程式碼新增到 Configuration.Seed 方法中:

protected override void Seed(BookService.Models.BookServiceContext context)
{
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Jane Austen" },
        new Author() { Id = 2, Name = "Charles Dickens" },
        new Author() { Id = 3, Name = "Miguel de Cervantes" }
        );

    context.Books.AddOrUpdate(x => x.Id,
        new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1, 
            Price = 9.99M, Genre = "Comedy of manners" },
        new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1, 
            Price = 12.95M, Genre = "Gothic parody" },
        new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2, 
            Price = 15, Genre = "Bildungsroman" },
        new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3, 
            Price = 8.95M, Genre = "Picaresque" }
        );
}

在「套件管理員控制台」視窗中,鍵入以下命令:

Add-Migration Initial
Update-Database

第一個命令會產生建立資料庫的程式碼,而第二個命令則會執行該程式碼。 資料庫會使用 LocalDB 在本機建立。

[套件管理員主控台] 視窗的螢幕擷取畫面中的 [啟用移轉]、[新增移轉初始] 和 [更新資料庫] 行會以紅色圓圈顯示。

探索 API (選擇性)

按 F5 以在偵錯模式中執行應用程式。 Visual Studio 會啟動 IIS Express,並執行您的 Web 應用程式。 Visual Studio 接著會啟動瀏覽器,並開啟應用程式的首頁。

當 Visual Studio 執行 Web 專案時,它會指派通訊埠編號。 在下圖中,通訊埠編號為 50524。 當您執行應用程式時,可能會看到不同的通訊埠編號。

以偵錯模式從 Visual Studio 啟動的應用程式視窗螢幕擷取畫面,其中 A P I 連結會以紅色圓圈圈,並以紅色箭號醒目顯示。

首頁是使用 ASP.NET MVC 來實作。 在頁面頂端,有一個連結表示「API」。 此連結會帶您前往 Web API 的自動產生說明頁面。 (若要瞭解如何產生此說明頁面,以及如何將自己的文件新增至頁面,請參閱建立 ASP.NET Web API 的說明頁面。) 您可以按下說明頁面連結,以查看 API 的詳細資料,包括要求和回應格式。

自動產生的說明頁面螢幕擷取畫面,其中顯示 API 功能文件的連結清單。

API 會在資料庫上啟用 CRUD 作業。 下列摘要說明 API。

Authors 描述
GET api/authors 取得所有作者。
GET api/authors/{id} 依識別碼取得作者。
POST /api/authors 建立新作者。
PUT /api/authors/{id} 更新現有的作者。
DELETE /api/authors/{id} 刪除作者。
書籍 描述
GET /api/books 取得所有書籍。
GET /api/books/{id} 依識別碼取得書籍。
POST /api/books 建立新書籍。
PUT /api/books/{id} 更新現有書籍。
DELETE /api/books/{id} 刪除書籍。

檢視資料庫 (選擇性)

當您執行 Update-Database 命令時,EF 會建立資料庫並呼叫 Seed 方法。 當您在本機執行應用程式時,EF 會使用 LocalDB。 您可以在 Visual Studio 中檢視資料庫。 從 [檢視] 功能表選取 [SQL Server 物件總管]

S Q L Server 伺服器物件總管螢幕擷取畫面,其中顯示以藍色醒目提示的 S Q L 伺服器項目,並以黃色醒目提示的 [新增 S Q L 伺服器] 項目。

在 [連接到伺服器] 對話方塊中的 [伺服器名稱] 編輯方塊中,鍵入「(localdb)\v11.0」。 將 [驗證] 選項保留為 [Windows 驗證]。 按一下 連線

[連接到伺服器] 對話方塊的螢幕擷取畫面,其中顯示 [伺服器名稱] 欄位中的文字 local d b v 11 dot 0,並以藍色醒目提示。

Visual Studio 會連線到 LocalDB,並在 [SQL Server 物件總管] 視窗中顯示現有的資料庫。 您可以展開節點,以查看 EF 建立的資料表。

S Q L Server 物件總管螢幕擷取畫面,其中顯示資料夾階層,以藍色醒目提示 Book Service Context 項目。

若要檢視資料,以滑鼠右鍵按一下表格並選取檢視資料

S Q L Server 物件總管螢幕擷取畫面,其中顯示以藍色醒目提示的 d b o dot 書籍項目,並以黃色醒目提示的 [檢視資料] 項目。

下列螢幕擷取畫面顯示書籍資料表的結果。 請注意,EF 會將種子資料填入資料庫,而資料表包含 Authors 資料表的外部索引鍵。

書籍資料表的螢幕快擷取畫面,其中顯示填入種子資料的資料庫,以及包含外部索引鍵的資料表。