我想進入一個項目與ASP.NET MVC和NHibernate(新手),並尋找從DAL更快的數據訪問。存儲庫模式和數據訪問
我的解決方案將大致爲 asp.net mvc ------業務層 - 數據訪問層 ----------所有支持的基礎設施層--------- -------
我的項目是與分類和社區網站,更快的數據訪問是必須的。
我真的很喜歡KIGG的實現,但我不太確定存儲庫模式是否適合更快的數據訪問。
我看過S#arp Architecture,它對我來說太大了。
在倉庫也是,我打算從KIGG實施分流,並使用以下爲檢索對象
IRepository {
無效添加(); void Remove();
public IQueryable FindAll(Func exp) { return GetTable.Where(exp).AsQueryable(); }
}
其中日常現場命中附近可能有10000到15000,會與上述資料庫模式「查找全部」建議?
閱讀有關存儲庫模式,也是事實最後幾天之後,有在專家本人之間的意見差異,我越來越糊塗如何倉庫可以被有效地使用,(http://ayende.com/Blog/archive/2009/04/17/repository-is-the-new-singleton.aspx)
我知道的問題是模糊的,但任何建議表示讚賞。
編輯* 1
我喜歡這點約DAL: 試圖封裝使事情更容易,偉大的工作。嘗試封裝,以便您可以切換OR/Ms?將無法工作,將是昂貴和痛苦。
編輯* 2
我越來越傾向於「CQRS」模式。這看起來是合乎邏輯的,而且從我讀過的內容來看,讀取速度會更快,即使陳舊。 根據域對象從域讀取將導致不必要的處理,以填充AggregateRoot,然後將它們轉換爲ViewModels。
謝謝 的三月
它確實幫了我。我正在更多地研究IQueryable來了解它的執行情況。你會建議傳遞一個自定義的QueryObject,然後根據它創建表達式或直接將表達式傳遞給存儲庫。 – TheMar 2010-09-22 20:51:00