顯示具有 AutoMapper 標籤的文章。 顯示所有文章
顯示具有 AutoMapper 標籤的文章。 顯示所有文章

2014年6月1日 星期日

AutoMapper Custom Value Resolvers 的應用 - 指定個別日期型別屬性轉換為民國年格式

在上一篇「AutoMapper Custom Type Converters 的應用 - 將所有日期資料轉換為民國年格式」為各位說明了怎麼將取出資料裡的西元年日期型別資料使用 Custom Type Converter 轉換為民國年格式字串,因為是使用了 Type Converter 所以會統一處理指定型別的轉換,那如果我們不想要統一處理而是想要指定某個欄位做轉換,而其他的日期欄位不需要做轉換,這樣的情況就可以使用 Custom Value Resolvers 來做處理。

之前曾經寫過一篇文章說明 Custom Value Resolvers「AutoMapper - Complex Type 使用 Custom value resolvers 設定屬性轉換」,不過使用的情況與這一次的要說明的並不相同。

 


2014年5月31日 星期六

AutoMapper Custom Type Converters 的應用 - 將所有日期資料轉換為民國年格式

在做資料對映轉換的時候,假如想要將來源物件的某一種類型的資料一致轉換為另一種類型時,這個時候可以使用 Custom Type Converter,可以讓對映轉換的設定減少重複的程式碼。

這篇就用一個最容易明白的例子來做說明,就是將原本存為西元年的日期資料使用 Custom Type Converter,統一讓西元年的日期資料轉換為民國年格式的字串資料。

 


2014年4月17日 星期四

ADO.NET DataSet 對映轉換為型別 - 使用 AutoMapper

以往我們要把使用 ADO.NET 操作所取得的資料 Mapping 到自訂的類別時,往往都會用到蠻多累人的作法,對於這樣需求的開發者通常都是直接將每一筆資料用手動的方式把一個個欄位對映到類別的屬性,而這件事情做個幾次之後就會覺得煩,所以開發者就會四處找答案,而大部分所找到的解決方案就是使用反射(Reflection),不過要使用反射做這件事情也不見得簡單,而且要靠考慮的事情也相當多,往往要碰到無數個錯誤之後才能夠讓程式穩定,但是例外總是會層出不窮地出現,所以最後總是無限循環地作修改。

其實可以使用 AutoMapper 來處理這樣的操作,而且沒有太複雜與繁瑣的步驟。

 


2014年3月6日 星期四

AutoMapper - 使用 Queryable Extensions

AutoMapper 對於有實作 IQueryable<T>(例如:使用 Entity Framework, NHiberbate 等)提供了另一個資料對映的方式,可以簡化資料對映的處理。

 


2014年3月4日 星期二

AutoMapper - Complex Type 使用 Custom value resolvers 設定屬性轉換

在上一篇文章「AutoMapper - Complex Type 的資料對映」裡說明了幾種對於 Complex Type 的資料對映方式,其實還有一種方式,AutoMapper 提供了一種「Custom value resolvers(自定義值解析器)」,讓我們可以另外定義資料解析以及轉換的方式,以彈性的方式進行目標類別物件的資料對映。

這篇文章將會以前篇文章的程式來做示範。

 


2014年3月2日 星期日

AutoMapper - Complex Type 的資料對映

有時候建立類別並不會單純只使用一般的資料型別來定義屬性,很多時候也是會使用我們所定義的類別作為屬性的型別,最常見的就是在 ASP.NET MVC 所使用的 ViewModel 或是 DTO 資料傳輸物件類別,要如何處理這樣的資料對映呢?

接下來將會說明不同的資料對映使用方式。

 


2014年3月1日 星期六

AutoMapper 兩個物件對映到一個類別

之前的兩篇文章或是一般的應用都是取得某個類別的一個物件後再去對映到目標類別物件,

使用 AutoMapper 處理類別之間的對映轉換

AutoMapper 的設定 (Configuration)

如果要將兩個以上的物件對映到目標類別,應該怎麼做呢?

 


2013年4月10日 星期三

AutoMapper 的設定 (Configuration)

上一篇「使用 AutoMapper 處理類別之間的對映轉換」像各位說明在系統中可以使用 AutoMapper 來處理類別之間的轉換,例如:Entity Model to DTO, DTO to Entity Model, Entity Model to ViewModel, ViewModel to Entity Model … etc.

應該有人會覺得每次要使用 AutoMapper 處理類別轉換的時候總是要先建立類別轉換的設定,然後再執行轉換,如果同樣的類別轉換設定會在不同地方出現時,豈不是每次都要重複建立嗎?比如說以下的這個設定:

image

這一篇就跟大家說明如何處理 AutoMapper 的設定。

 


2013年4月5日 星期五

使用 AutoMapper 處理類別之間的對映轉換

以往使用傳統 ADO.NET 方式對資料庫存取資料時都會碰上資料對映的處理,這是指已經在系統中使用物件導向開發的情況(而沒有使用物件導向的程式中大多是不會遇到這個問題),當從資料庫取得資料後為了要對映到我們所定義的類別,如果沒有使用輔助方法的話,很多人都是乖乖地在程式中去將一筆筆的資料做迴圈處理,然後再一個欄位對映到類別指定的屬性,因為這樣一筆一筆地對映實在太花時間了,所以就有很多輔助方法的產生,有些人會自己寫,而我則是使用 Enterprise Library Data Access Application Block 裡的 RowMapper 方法,在我之前的文章也曾經介紹過,如下:

簡述 Oracle + Enterprise Library 5.0 Data Access Application Block 的操作
Entity Framework 與 Stored Procedure - 回傳多種資料集

而 Microsoft MVP - 91 也曾經發表了他所設計的 RowMapper 模組「[.NET]RowMapper模組」「[.NET]透過 T4 產生對應 DB table 的 entity」,都是用在資料與類別對映的處理上。

而到了完全以物件導向開發的時候,尤其是已經在專案中使用 ORM Solution,如:ADO.NET Entity Framework or nHibernate 等,大多都是資料庫的 Table 對映到專案的類別,這一段的對映處理不必由我們動手做,在大部分的專案開發上都是一個類別用到底,但有些專案開發時會因為需求而產生了 一些類別,這些類別的屬性可能來自不同的原生類別,而在 ASP.NET MVC 裡最常碰到的就是 ViewModel 類別,而處理這些類別的對映,又遇到上面我所描述過的狀況,如果沒有使用輔助方法的話,又需要一筆一筆資料去做對映,但只少比一般 ADO.NET 的對映處理已經是方便許多,而 AutoMapper 就是可以幫我們簡化這種類別之間的對映轉換處理,讓程式在處理時可以更加簡易也可以更加優雅些,也可以省下更多的開發時間;接著就來讓我簡單介紹怎麼使用 AutoMapper。

 


提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。