上一篇介紹了IQueryable的Where方法存在的問題,並擴展了一個名為Filter的過濾方法,它是Where方法的增強版。本篇將介紹查詢的另一個重要主題——分頁與排序。 對於任何一個信息系統,查詢都需要分頁,因為不可能直接返回表中的所有數據。 如果直接使用原始的Ado.Net ...
上面兩篇已經作好准備,本文將進行基礎查詢擴展。當使用了Entity Framework這樣的ORM框架以后,我們查詢的核心被集中在IQueryable的Where方法上。 如果UI需要通過姓名查詢一個客戶,會在UI上放置一個輸入框作為客戶姓名的查詢條件。服務端接收以后通過Where方法進行過濾,如下所示,entities表示DbContext的子類。 當然,也可以使用Linq語句來完成。 這些代 ...
2014-12-25 13:25 14 3901 推薦指數:
上一篇介紹了IQueryable的Where方法存在的問題,並擴展了一個名為Filter的過濾方法,它是Where方法的增強版。本篇將介紹查詢的另一個重要主題——分頁與排序。 對於任何一個信息系統,查詢都需要分頁,因為不可能直接返回表中的所有數據。 如果直接使用原始的Ado.Net ...
前面已經做了一些准備工作,本篇將介紹查詢條件的封裝,它是規約模式的一個應用。 規約使用一個對象來封裝謂詞,我之前已經介紹過它在驗證方面的應用,本篇是規約模式在查詢方面的應用。 規約的強大之處在於,能夠將一堆雜亂無章的條件判斷或查詢條件封裝起來,以一個清晰的概念來表達,並使得這些謂詞 ...
信息系統的查詢需求千變萬化,在倉儲中為每個查詢需求創建一個特殊方法,將導致大量乏味而臃腫的接口。 一種更加可行的辦法是,在應用層服務中描述查詢需求,並通過倉儲執行查詢。 為了能夠更好的描述查詢需求,可以將查詢功能從倉儲中抽取出來,專門創建一個查詢對象。 查詢最復雜的部分是條件 ...
前一篇介紹了倉儲的基本概念,並談了我對倉儲的一些認識,本文將實現倉儲的基本功能。 倉儲代表聚合在內存中的集合,所以倉儲的接口需要模擬得像一個集合。倉儲中有很多操作都是可以通用的,可以把這部分 ...
敏捷時代的來臨,迫使微軟.Net技術也在向敏捷方向發展。近幾年,.Net在數據訪問、Web、測試等多個領域大刀闊斧的進行改革,新技術不斷涌現。一方面這是值得慶幸的,讓.Net程序員在開發復雜項目有了更多的選擇,一改往日只能拖控件綁定數據的局面。另一方面,程序員需要大量的學習,並且需要依賴更多 ...
對於BS管理系統,我很長一段時間都工作在Asp.Net Web Form上,Web Form的主要優勢是可以使用服務器端控件,以類似CS的開發模式進行工作,通過拖拽控件和定義事件處理函數,極大的簡 ...
最近的更新速度越來越慢,主要是項目上比較忙,封裝EasyUi也要花很多時間。不過大家請放心,本系列不會半途夭折,並且代碼干貨也會持續更新。本文繼續介紹表現層和Asp.net Mvc,我將在本篇討論 ...
前面介紹了應用程序框架的一個重要組成部分——公共操作類,並提供了一個數據類型轉換公共操作類作為示例進行演示。下面准備介紹應用程序框架的另一個重要組成部分,即體系架構支持。你不一定要使用DDD這樣的架構,使用單層架構和普通三層架構一樣可以,不過你如果希望獲得更進一步的復用性和封裝度,使用 ...