AutoMapper ช่วยเราในการ Map Model จาก Repository เข้ากับ Service
เราไม่ต้อง foreach เองในกรณีที่ส่งมาเป็น List<>
ขั้นตอนการทำงาน
1. ไปที่ folder Service แล้วสร้าง folderตามชื่อ Service จากนั้นสร้างไฟล์ ชื่อService+Mappper
2. ใส่ using AutoMapper;
3 ตัวอย่าง public static class TestMapper
{
//กรณี Model ที่เป็น List
public static List<ชื่อ Model ใน Service> To+ชื่อ Model ใน Service(this List<ชื่อ model ที่ส่งมาจาก Repository> entities)
{
return Mapper.Map<List<ชื่อ Model ใน Service>>(entities) ?? new List<ScheduleMemberInGroupViewModel>();
}
***** ?? new List<ScheduleMemberInGroupViewModel>(); แปลว่ากรณีที่ไม่มีข้อมูลใน Return Model List<ScheduleMemberInGroupViewModel> เปล่าๆกลับไป ****
//กรณี Model ที่ไม่ได้เป็น List
public static ScheduleMemberInGroupViewModel
ToTestViewModel(this UserInCompanies
entities)
{
return
Mapper.Map<ScheduleMemberInGroupViewModel>(entities)
?? new ScheduleMemberInGroupViewModel;
}
}
4. ไปที่ Project Web ->App_Start->AutoMapperConfig
public partial class AutoMapperConfig
{
public static void RegisteredAutoMapper()
{
ControllerAutoMapperBootstrapper.Configure();
Mapper.CreateMap<ชื่อ model ที่ส่งมาจาก Repository, ชื่อ Model ใน Service>();
}
}
5. สร้าง Model ใน Service ต้องตั้งชื่อตัวแปรให้ตรงกับ Model ที่ส่งมาจาก Repo ด้วยนะไม่งั้นมัน Map ไม่ได้จะเออเร่อ
6. การใช้งาน
.Toชื่อMapper ที่เราจะ Map ระวังว่าต้อง type ตรงกับที่เราMapด้วยนะ
7. เปิดหน้าที่เราจะใช้ Mapper แล้วพิมพ์ using Pathที่เราเก็บ ชื่อMapper ไว้ ถ้าไม่พิมมันจะหาไม่เจอโง่ชิบหายเลย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น