วันจันทร์ที่ 6 กรกฎาคม พ.ศ. 2558

ASP.NET การใช้งาน AutoMapper

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 ไว้                                          ถ้าไม่พิมมันจะหาไม่เจอโง่ชิบหายเลย

ไม่มีความคิดเห็น:

แสดงความคิดเห็น