ทำเหมือน AutoMapper ธรรมดาเลย แต่เพิ่ม code ส่วนนี้เข้าไป
Mapper.CreateMap<Modelต้นทาง, Modelปลายทาง>()
//config property ที่ชื่อต้นทางกับปลายทางไม่ตรงกัน
//เช่น ต้นทาง: Id , ปลายทาง: UserId
.ForMember(
dst => dst.UserId ,
opt => opt.MapFrom(src => src.Id ))
//ทำเหมือนข้างบนไปเรื่อยๆในอันที่ชื่อไม่ตรงกัน
.ForMember(
dst => dst.EndDate,
opt => opt.MapFrom(src => src.EndDatePlan));
รวม code จะได้เป็น
public static Modelปลายทาง Toชื่อที่มันสื่อว่ามันแมพไปModelปลายทางนะ(this Modelต้นทาง model)
{
Mapper.CreateMap<Modelต้นทาง, Modelปลายทาง>()
.ForMember(
dst => dst.UserId ,
opt => opt.MapFrom(src => src.Id ))
.ForMember(
dst => dst.ชื่อตัวแปรของ Property Model ปลายทาง,
opt => opt.MapFrom(src => src.ชื่อตัวแปรของ Property Model ต้นทาง));
return Mapper.Map<Modelปลายทาง>(model) ?? new Modelปลายทาง();
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น