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

ASP.NET MVC 資料存取不只 Linq to SQL:採用 ADO.NET 實作 N 層架構 CRUD 範例

     編輯:關於ASP.NET

許多 MVC 教學預設使用 Linq to SQL 或 Entity Framework,但實務上 ADO.NET、Dapper、原生 SqlClient 等同樣適用。本文示範如何在 MVC 專案中整合經典 N 層架構(BO/BLL/DAL),採用 ADO.NET 實作完整 CRUD 功能,展現資料存取技術的可替換性。

架構概覽

參考 Imar Spaanjaars 的 N 層架構系列:

  • BO (Business Objects):實體類別,僅含屬性(ContactPerson, PhoneNumber, Address, EmailAddress)。
  • BLL (Business Logic Layer):業務邏輯與規則驗證,管理 BO 實例集合(增刪改查),對應 Manager 類別。
  • DAL (Data Access Layer):資料庫操作細節(SQL Server + ADO.NET),介面與 BLL 一對一對應,透過介面隔離實作。

N 層架構類別圖

MVC 整合步驟

  1. 建立 MVC 專案,刪除預設 Controller/Views。
  2. 將 BO/BLL/DAL 專案複製至 Models 資料夾,調整命名空間。
  3. 連接字串存入 Web.config,DAL 讀取設定。
  4. Controller 僅呼叫 BLL 方法,回傳 BO 給 View,完全不觸碰 DAL。

Controller 範例

public class ContactController : Controller
{
    private readonly IContactManager _contactMgr = new ContactManager(); // BLL 介面

    public ActionResult Index()
    {
        var contacts = _contactMgr.GetAllContacts();
        return View(contacts);
    }

    [HttpPost]
    public ActionResult Create(ContactPerson contact)
    {
        if (ModelState.IsValid)
        {
            _contactMgr.AddContact(contact);
            return RedirectToAction("Index");
        }
        return View(contact);
    }
    // Edit、Delete 同理...
}

關鍵優勢

  • 資料存取技術解耦:未來改用 Oracle、MySQL、Web API、EF Core,只需替換 DAL 專案,BLL/Controller 不動。
  • 單元測試友善:BLL 介面可 Mock,Controller 測試不需資料庫。
  • 關注點分離:SQL 語法集中在 DAL,業務規則在 BLL,UI 邏輯在 View。

專案結構圖

MVC 專案結構

總結

MVC 是表現層架構,不綁定特定 ORM。採用 N 層 + 介面導向設計,讓資料存取技術成為可換拔的實作細節,才是企業級應用的長久之計。

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