原文:應用程序框架實戰二十六:查詢對象

信息系統的查詢需求千變萬化,在倉儲中為每個查詢需求創建一個特殊方法,將導致大量乏味而臃腫的接口。 一種更加可行的辦法是,在應用層服務中描述查詢需求,並通過倉儲執行查詢。 為了能夠更好的描述查詢需求,可以將查詢功能從倉儲中抽取出來,專門創建一個查詢對象。 查詢最復雜的部分是條件過濾,這也是查詢對象的主要職責。查詢對象可以認為是規約模式的一個變種,允許查詢對象動態創建查詢條件。 在Util.Doma ...

2015-01-20 22:24 4 3038 推薦指數:

查看詳情

應用程序框架實戰二十五:查詢條件(規約模式應用)

  前面已經做了一些准備工作,本篇將介紹查詢條件的封裝,它是規約模式的一個應用。   規約使用一個對象來封裝謂詞,我之前已經介紹過它在驗證方面的應用,本篇是規約模式在查詢方面的應用。   規約的強大之處在於,能夠將一堆雜亂無章的條件判斷或查詢條件封裝起來,以一個清晰的概念來表達,並使得這些謂詞 ...

Tue Jan 20 09:26:00 CST 2015 14 3828
應用程序框架實戰十六:DDD分層架構之值對象(介紹篇)

  前面介紹了DDD分層架構的實體,並完成了實體層超類型的開發,同時提供了驗證方面的支持。本篇將介紹另一個重要的構造塊——值對象,它是聚合中的主要成分。   如果說你已經在使用DDD分層架構,但你卻從來沒有使用過值對象,這毫不奇怪,因為多年來養成的數據建模思維已經牢牢把你禁錮,以致於你在使用 ...

Wed Nov 26 04:26:00 CST 2014 33 7031
應用程序框架實戰二十四:基礎查詢擴展 - 分頁與排序

  上一篇介紹了IQueryable的Where方法存在的問題,並擴展了一個名為Filter的過濾方法,它是Where方法的增強版。本篇將介紹查詢的另一個重要主題——分頁與排序。   對於任何一個信息系統,查詢都需要分頁,因為不可能直接返回表中的所有數據。   如果直接使用原始的Ado.Net ...

Sun Jan 04 05:08:00 CST 2015 11 3390
應用程序框架實戰二十三:基礎查詢擴展

  上面兩篇已經作好准備,本文將進行基礎查詢擴展。當使用了Entity Framework這樣的ORM框架以后,我們查詢的核心被集中在IQueryable的Where方法上。   如果UI需要通過姓名查詢一個客戶,會在UI上放置一個輸入框作為客戶姓名的查詢條件。服務端接收以后通過Where方法 ...

Thu Dec 25 21:25:00 CST 2014 14 3901
應用程序框架實戰一:引言

  敏捷時代的來臨,迫使微軟.Net技術也在向敏捷方向發展。近幾年,.Net在數據訪問、Web、測試等多個領域大刀闊斧的進行改革,新技術不斷涌現。一方面這是值得慶幸的,讓.Net程序員在開發復雜項目有了更多的選擇,一改往日只能拖控件綁定數據的局面。另一方面,程序員需要大量的學習,並且需要依賴更多 ...

Wed Oct 29 23:02:00 CST 2014 16 7220
應用程序框架實戰十六:CRUD實戰演練介紹

  從本篇開始,本系列將進入實戰演練階段。   前面主要介紹了一些應用程序框架的概念和基類,本來想把所有概念介紹完,再把框架內部實現都講完了,再進入實戰,這樣可以讓初學者基礎牢靠。不過我的精力很有限,文章進度越來越慢,所以准備切換一下介紹順序,把實戰演練提前,以方便你閱讀代碼。 實戰演練介紹 ...

Mon Apr 20 07:20:00 CST 2015 58 8201
應用程序框架實戰二十八:前端框架決擇

  對於BS管理系統,我很長一段時間都工作在Asp.Net Web Form上,Web Form的主要優勢是可以使用服務器端控件,以類似CS的開發模式進行工作,通過拖拽控件和定義事件處理函數,極大的簡 ...

Tue Jan 27 22:59:00 CST 2015 251 9697
應用程序框架實戰二十:映射層超類型

  上一篇介紹了工作單元層超類型的封裝演化過程,本文將介紹對Entity Framework映射層超類型的封裝。   使用Entity Framework一般需要映射三種類型的對象,即實體、聚合、值對象。   聚合與實體映射的主要區別是:聚合映射單屬性標識Id,並需要映射樂觀離線鎖 ...

Tue Dec 09 02:55:00 CST 2014 1 3486
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM