Dengan berat hati, akhirnya saya nulis juga soal codingan di blog ini, wkwkwkwkw *maklum sedang mardabu ![]()
Automapper, mungkin sebagian dari masbro dah pernah pake API ini dan merasakan gimana mudah, simple dan sangat membantu dalam object to object mapping. dr webnya sendiri, auto mapper dipakai sebagai:
AutoMapper is geared towards model projection scenarios to flatten complex object models to DTOs and other simple objects
mksdnya piye jal?
secara sederhana, gimana caranya untuk memproyeksikan data dr complex object model (contoh aktual, sebuah Entity di Entity Framework) ke sebuah DTO (Data Transfer Object) dan object simple lainnya, atau bisa juga sebaliknya.
masih bingung? contohnya begini:
misal object A memiliki puluhan properties, sedang kita hanya butuh, katakanlah 8 dari properties tersebut untuk dimap ke sebuah object B. nah… mungkin dulu secara tradisional, kita assign satu-satu tuh property di B dengan value dr related property di object A
contoh:
B.PropA = A.PropA dst..
nah dengan automapper ini, kita ga perlu melakukan itu lagi, cukup dengan inisialisasi code berikut pada saat aplication start:
Mapper.CreateMap<ObjectA, ObjectB>(); // dimana ObjectA adalah source dan ObjectB adalah destinationnya
dan dengan line berikut pada program:
var result = Mapper.Map<ObjectA, ObjectB>(objectA);
maka result akan bertipe ObjectB dengan value mapping dr objectA.
adapun syaratnya, type dan name property dr kedua object harus sama, contoh:
public class ObjectA
{
public int PropA {get;set;}
public Nullable<DateTime> PropB {get;set;}
public string PropC {get;set;}
}
public class ObjectB
{
public int PropA {get;set;}
public DateTime PropB {get;set;}
public string PropD {get;set;}
}
dari dua contoh object diatas, maka PropA akan berhasil dimapping valuenya, sedang PropB tidak, karena type dr PropB dikedua object tidak sama, di ObjectA bertipe nullable<datetime> sedang di ObjectB bertipe datetime.
nah… bagaimana kalo kita tetep pengen ngemap value yg nullable ke non nullable, atau malah pengen ngemap ke property yang beda namanya, ato ngemap ke property yg beda tipe? automapper sangat configurable masbro
contoh configurasi inisialisasi automapper:
Mapper.CreateMap<ObjectA, ObjectB>().ForMember(dest => dest.PropD, opt => opt.MapFrom(src => src.PropC));
dari contoh configurasi diatas, maka data dari PropC ObjectA akan dimap ke PropD di ObjectB,. contoh lain
Mapper.CreateMap<ObjectA, ObjectB>().ForMember(dest => dest.PropB, opt => opt.MapFrom(src => src.PropB.Value));
sedang contoh diatas akan map value dari nullable datetime PropB ObjectA ke non nullable datetime PropB ObjectB, simple kan?
untuk lebih lengkapnya soal konfigurasi automapper ini bisa diliat di webnya:
http://automapper.codeplex.com/
*pssstttt… kl masbro ada waktu luang dan ga mau make API ini, bisa koq make Reflection, cuman tanggung sendiri akibatnya, xixixixixi..
Selamat menikmati :”>

Facebook
Twitter
LinkedIn