首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET MVC 模型建立與 Entity Framework Code First 實戰:MovieDB 範例完整教學

     編輯:ASP.NET 基礎

ASP.NET MVC 模型開發實戰:從類別設計到資料庫遷移


掌握 MVC 模型核心觀念,透過 Entity Framework Code First 建立 MovieDB 模型,自動產生控制器與視圖,完成 CRUD 功能原型。


MVC 模型核心職責

模型包含除視圖與控制器邏輯外的所有應用程式邏輯:

  • 業務邏輯:核心運算規則與流程
  • 驗證邏輯:資料完整性與商業規則檢查
  • 資料存取邏輯:資料庫 CRUD、查詢、關聯管理

模型負責控制與操作應用程式資料,是 MVC 架構的核心層。

Models 資料夾結構

專案範本預設包含 AccountModels.cs(安全相關模型)。新增領域模型時,建議依功能領域建立獨立檔案,如 MovieDB.cs。

建立 MovieDB 領域模型

步驟 1:新增模型類別

  1. 方案總管 → Models 右鍵 → 加入 → 類別
  2. 命名為 MovieDB.cs → 加入

步驟 2:定義實體與 DbContext

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcDemo.Models
{
    // 電影實體類別
    public class MovieDB
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Director { get; set; }
        public DateTime Date { get; set; }
    }

    // 資料庫內容類別,繼承 DbContext
    public class MovieDBContext : DbContext
    {
        // 對應資料庫 MovieDBs 資料表
        public DbSet<MovieDB> Movies { get; set; }
    }
}
命名慣例關鍵: 實體類別命名為 MovieDB(單數),對應資料表會自動對應至 MovieDBs(複數)。這是 Entity Framework Code First 的預設慣例,確保模型正確對應資料表。

建立資料庫控制器(Scaffolding)

步驟 1:建置專案

偵錯 → 建置 MvcDemo(或 Ctrl+Shift+B),確保模型編譯成功。

步驟 2:新增控制器

  1. 方案總管 → Controllers 右鍵 → 加入 → 控制器
  2. 控制器名稱:MoviesController
  3. 範本:使用 Entity Framework 的讀寫動作和視圖控制器
  4. 模型類別:MovieDB (MvcDemo.Models)
  5. 資料內容類別:MovieDBContext (MvcDemo.Models)
  6. 視圖引擎:Razor (CSHTML)
  7. 點擊 加入

自動產生檔案結構

  • Controllers/MoviesController.cs - 完整 CRUD Action
  • Views/Movies/ - 5 個視圖檔案:
視圖檔案對應 Action功能
Create.cshtmlCreate新增電影表單
Delete.cshtmlDelete刪除確認頁面
Details.cshtmlDetails電影詳細資料
Edit.cshtmlEdit編輯電影表單
Index.cshtmlIndex電影清單列表

Entity Framework Code First 運作機制

  1. 應用程式首次存取 MovieDBContext 時
  2. EF 檢查資料庫是否存在
  3. 不存在則依模型建立資料庫與資料表(Code First)
  4. 資料表命名遵循慣例:DbSet<T> 屬性名稱複數化(Movies → MovieDBs)
  5. 主鍵慣例:ID 或 ClassNameID 自動設為 Primary Key + Identity

驗證與資料註解擴充

為模型加入驗證屬性,自動套用至視圖與控制器:

public class MovieDB
{
    public int ID { get; set; }

    [Required(ErrorMessage = "片名為必填")]
    [StringLength(100)]
    [Display(Name = "電影片名")]
    public string Title { get; set; }

    [Required]
    [Display(Name = "導演")]
    public string Director { get; set; }

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    [Display(Name = "上映日期")]
    public DateTime Date { get; set; }
}

完成驗證

執行應用程式(F5),點擊導航列 Movies 標籤,即可測試完整的 CRUD 功能:

  • 瀏覽電影清單
  • 新增電影資料
  • 編輯現有資料
  • 查看詳細資訊
  • 刪除確認與執行

恭喜!您已成功建立第一個 MVC 資料模型並自動產生完整 CRUD 介面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved