Repository Pattern 是一個用來切割資料存取層和商業邏輯層的模式 針對資料的存取提供了基本的新增、修改、刪除、查詢等操作 返回的對象應該為IQueryable以供商業邏輯做更進一步的處理 這樣的好處是商業邏輯不直接處理資料的存取,方便之後抽換資料存取層,也方便單元測試 以下用一個簡單的留言版當例子透過ADO.NET和Entity Framework來存取資料 首先準備好留言版的資料庫,資料表就簡單的用GuestbookId和Message就好
[![](http://3.bp.blogspot.com/-NkgUfftgZso/U4Wx3J8w7QI/AAAAAAAABW0/3iDzzqb62zA/s1600/01.DB.png)](http://3.bp.blogspot.com/-NkgUfftgZso/U4Wx3J8w7QI/AAAAAAAABW0/3iDzzqb62zA/s1600/01.DB.png) 定義一個Guestbook的Entity namespace WebApplication1.Models { using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; [Table("Guestbook")] public class Guestbook { [Key] public int GuestbookId { get; set; } public string Message { get; set; } } } 順便定義一個DbContext
namespace WebApplication1.Models { using System.Data.Entity; public class GuestbookContext : DbContext { public DbSet<Guestbook> Guestbook { get; set; } } } 定義一個IGuestbookRepository介面
namespace WebApplication1.Repositories { using System; using System.