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

ASP.NET MVC 範例專案「Suteki.Shop」分析:NHibernate Repository 實作

     編輯:關於ASP.NET

專案內建基於 NHibernate 的 ORM 實作,採用 IRepository<T> 模式(參考 Rhino.Commons),封裝 CRUD 操作。核心類別 NHibernateRepository<T>:

public class NHibernateRepository<T> : IRepository<T>, IRepository where T : class {
  private readonly ISessionManager sessionManager;
  public NHibernateRepository(ISessionManager sessionManager) { this.sessionManager = sessionManager; }
  private ISession Session { get { return sessionManager.OpenSession(); } }

  public T GetById(int id) { return Session.Load<T>(id); }
  public IQueryable<T> GetAll() { return Session.Linq<T>(); }
  public void InsertOnSubmit(T entity) { Session.Save(entity); }
  public void DeleteOnSubmit(T entity) { Session.Delete(entity); }
  public void SubmitChanges() { Session.Flush(); }
  // 非泛型介面显式實作...
}

Repository 類別圖

透過 ISessionManager 抽象 Session 生命週期,配合 Castle Windsor 管理元件生命週期,實現乾淨的 Repository 抽象層。

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