AutoMapper 對於有實作 IQueryable<T>(例如:使用 Entity Framework, NHiberbate 等)提供了另一個資料對映的方式,可以簡化資料對映的處理。
這次要做的與前面兩篇的內容不同,另外建立 CustomerOrderStatistics 類別,類別裡有三個屬性,有 CustomerID 與 Customer 以及 OrderStatistics,另外一個類別為 OrderStatistics,其屬性分別為 OrderCount , TotalQuantity,用來放置顧客訂單數量以及所有訂單的產品訂購總數量,
使用 AutoMapper 資料對映的設定方式如下圖,不過並不是只處理一筆資料而是要處理所取出的全部顧客資料,:
執行結果
使用 Queryable Extensions
接著我們改為使用 AutoMapper 的 Queryable Extensions 的 Project().To<TResult>() 方法,使用前需要引用 AutoMapper.QueryableExtensions 命名空間,
修改的程式內容:
執行結果:
這邊要特別說明,Queryable Extensions 並不支援前一篇文章「AutoMapper - Complex Type 使用 Custom value resolvers 設定屬性轉換」裡所使用的「ResolveUsing」,所以如果資料對映的設定改為以下的方式,
那麼在執行的時候就會出現 Exception,
AutoMapper Wiki - Queryable Extensions
所以使用 Queryable Extensions 功能會是在簡單的資料對映處理上,如果是會有複雜處理的時候就不要使用。
以上
不好意思
回覆刪除想請教一個非本文章的專業問題
在文章中,你在偵錯模式下觀察變數的值的那個視窗
似乎跟原本 VS 內建的長的不太一樣
是否使用了哪一個擴充套件?
看起來不錯 能否介紹一下呢 謝謝!
OzCode
刪除http://www.oz-code.com/
現在是 Beta 所以可以免費使用,
以前叫做 BugAid,好工具,所以還是 BugAud 的時就花錢買來用了。