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

Contoso University 教學 (九):Repository 與 Unit of Work 模式實作

     編輯:關於ASP.NET

在資料存取層與業務邏輯層間建立抽象層,利於測試、解耦、可維護性。

核心介面與實作

public interface IStudentRepository : IDisposable {
    IEnumerable<Student> GetStudents();
    Student GetStudentByID(int id);
    void InsertStudent(Student student);
    void DeleteStudent(int studentID);
    void UpdateStudent(Student student);
    void Save();
}

public class StudentRepository : IStudentRepository {
    private SchoolContext context;
    public StudentRepository(SchoolContext context) { this.context = context; }
    // 實作 CRUD 方法,Save() 呼叫 context.SaveChanges()
    // 實作 Dispose 模式釋放 Context
}

Unit of Work 整合多倉儲

UnitOfWork 類別封裝共享 SchoolContext,屬性暴露各 Repository 實例,Save() 統一提交,確保交易一致性。

Controller 使用

private UnitOfWork unitOfWork = new UnitOfWork();
public ActionResult Index() { return View(unitOfWork.StudentRepository.GetStudents()); }

單元測試時可注入記憶體實作 (如 List<Student>),實現真正的 TDD。

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