有時候建立類別並不會單純只使用一般的資料型別來定義屬性,很多時候也是會使用我們所定義的類別作為屬性的型別,最常見的就是在 ASP.NET MVC 所使用的 ViewModel 或是 DTO 資料傳輸物件類別,要如何處理這樣的資料對映呢?
接下來將會說明不同的資料對映使用方式。
使用方式一
上面所定義的類別是最常見的,再一個自定義類別裡的屬性其型別為另一個自定義類別,因為是直接從資料庫取得 Customer 資料,因為資料來源都在 Customer 物件裡,所以使用 AutoMapper 做資料對映就沒有什麼複雜操作,
執行結果
使用方式二
這邊另外建立了一個 OrderModel 的類別,然後原來的 ComplexModel 增加一個型別為 OrderModel 的屬性,這個屬性要放的資料就只有 OrderID 與 OrderDate,
因為一個 Customer 會有多個 Order 資料,所以只會取第一筆 Order 的 OrderID 與 OrderDate 放進 OrderModel 中,而多了這麼一個屬性後,該怎麼使用 AutoMapper 定義資料的對映呢?
如果是使用以下的設定方式,在執行的時候是會有錯誤的,
可以使用以下的設定方式,這邊要特別留意在對映 OrderModel 的時候必須要先建立 instance,
執行結果
使用方式三
上面的兩種方式雖然都是可以一次就完成資料對映的設定,不過這次換個方式來做,雖然看起來比上面的方式要繁瑣一些,但程式結構是比較蠻清楚的,
第二、三種使用方式所執行的結果都是相同,在實際使用上就要看狀況來選擇使用。
以上
請問一下像這句最後要怎麼回傳TASK的型別啊??也就是如何回傳非同步的方式呢??
回覆刪除var result =Mapper.Map(ownExpenseH);
return result;
不知道您是否有嘗試過呢?
我不太明白為何最後的資料對映轉換會需要使用到非同步的方式來操作?
刪除不好意思是我搞錯了,是我的回傳的類別搞錯了,我以為是非同步的關係.............
回覆刪除