共用方式為


新增模型 (C#)

作者:Rick Anderson

本教學課程將說明基本概念,簡介如何使用 Microsoft Visual Web Developer 2010 Express Service Pack 1 (Visual Studio Microsoft 的免費版本) 建置 ASP.NET MVC Web 應用程式。 開始之前,請確定您已安裝下列必要項目。 您可按以下連結安裝所有專案:Web Platform Installer。 或者可使用下列連結個別安裝必要條件:

如果您使用 Visual Studio 2010 而非 Visual Web Developer 2010,請按以下連結安裝必要條件:Visual Studio 2010 必要條件

本主題隨附內含 C# 原始程式碼的 Visual Web Developer 專案。 下載 C# 版本。 如果您偏好使用 Visual Basic,請切換至本教學課程的 Visual Basic version 版。

新增模型

在本節中,您將新增類別來管理資料庫中的電影。 這些類別是 ASP.NET MVC 應用程式的「模型」部分。

您將使用稱為 Entity Framework 的 .NET Framework 資料存取技術,定義及使用這些模型類別。 Entity Framework (通常稱為 EF) 支援的開發範例稱為 Code First。 Code First 可讓您透過撰寫簡單的類別來建立模型物件。 (又稱 POCO 類別,源自「plain-old CLR objects」)。接著,您便可立即從類別建立資料庫,俐落快速地開始開發工作流程。

新增模型類別

在 [方案總管] 中,以滑鼠右鍵按一下 Models 資料夾,選取 [新增],然後選取 [類別]

[方案總管] 視窗的螢幕擷取畫面,已選取 [模型] 滑鼠右鍵功能表中的 [新增] 以及子功能表中的 [類別]。

類別命名為「Movie」(電影)。

CreateMovieClass

將下列五個屬性新增至 Movie 類別:

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; }
}

我們會使用 Movie 類別來代表資料庫中的電影。 Movie 物件的每個執行個體都會對應至資料庫表格中的列,而 Movie 類別的每個屬性都會對應至表格中的行。

在相同的檔案中,新增下列 MovieDBContext 類別:

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}

MovieDBContext 類別代表 Entity Framework 電影資料庫內容,此內容會在資料庫中處理 Movie 類別執行個體的擷取、儲存和更新。 MovieDBContext 衍生自 DbContext Entity Framework 提供的基礎類別。 如需有關 DbContextDbSet 的詳細資訊,請參閱「Entity Framework 生產力改善

若要參照 DbContextDbSet,您必須在檔案頂端新增下列 using 陳述式:

using System.Data.Entity;

完整的 Movie.cs 檔案如下所示。

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; } 
    }
}

建立連接字串並使用 SQL Server Compact

您建立的 MovieDBContext 類別負責連線到資料庫,以及將 Movie 物件對應到資料庫記錄。 不過您可能會遇到一個問題,就是如何指定要連接的資料庫。 在應用程式的 Web.config 檔案中新增聯接資訊,即可執行此動作。

開啟應用程式的根 Web.config 檔案。 (不是 Views 資料夾中的 Web.config 檔案)。下圖顯示兩個 Web.config 檔案;開啟紅色圈起的 Web.config 檔案。

[方案總管] 視窗的螢幕擷取畫面,其中 Web dot config 用紅色圈選。

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

<add name="MovieDBContext" 
         connectionString="Data Source=|DataDirectory|Movies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>

下列範例所示為 Web.config 檔案的一部分,其中已新增連接字串:

<configuration>
  <connectionStrings>
    <add name="MovieDBContext" 
         connectionString="Data Source=|DataDirectory|Movies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

您只需要撰寫這一小段的程式碼和 XML,即可在資料庫中表示及儲存電影資料。

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