前一篇文章「練習題 - LINQ Single Column Dynamic Group」練習了各種動態單一欄位的 Group 操作,這一篇則是要來練習動態多欄位的 Group 操作。
使用環境:VS2013, ASP.NET MVC 5, EntityFramework 6.1.0
使用資料庫:Northwind
前一篇文章「練習題 - LINQ Single Column Dynamic Group」練習了各種動態單一欄位的 Group 操作,這一篇則是要來練習動態多欄位的 Group 操作。
使用環境:VS2013, ASP.NET MVC 5, EntityFramework 6.1.0
使用資料庫:Northwind
這一次要練習的題目是怎麼作到動態選擇欄位做 LINQ 的 Group 操作,其實很少遇到需要在 LINQ 裡做動態 Group 的需求,所以就當做練習題目來練練看。
使用環境:VS2013, ASP.NET MVC 5, EntityFramework 6.1.0
使用資料庫:Northwind
很少在程式裡使用到 ArrayList 這個類別,所以一時間還沒有馬上意會過來,所以查了一下 MSDN 上面的說明:
MSDN - ArrayList 類別 (System.Collections)
這個類別有實作 IList 介面,而且使用大小會視需要而動態增加的陣列。
但如果我們要操作一段 LINQ 查詢,所使用的條件值是 ArrayList 而且輸出的結果也需要是 ArrayList 時,應該怎麼處理呢?
就來練習看看吧!
以往我們要把使用 ADO.NET 操作所取得的資料 Mapping 到自訂的類別時,往往都會用到蠻多累人的作法,對於這樣需求的開發者通常都是直接將每一筆資料用手動的方式把一個個欄位對映到類別的屬性,而這件事情做個幾次之後就會覺得煩,所以開發者就會四處找答案,而大部分所找到的解決方案就是使用反射(Reflection),不過要使用反射做這件事情也不見得簡單,而且要靠考慮的事情也相當多,往往要碰到無數個錯誤之後才能夠讓程式穩定,但是例外總是會層出不窮地出現,所以最後總是無限循環地作修改。
其實可以使用 AutoMapper 來處理這樣的操作,而且沒有太複雜與繁瑣的步驟。