2016年12月10日 星期六

自動對映類別的利器 AutoMapper v5.2.0

新版AutoMapper已經更新一段時間了,因為在舊專案比較不會因為更新了新版,而去大幅修改原有的專案,所以一直沒在使用它,
最近有點時間所以就來試用看看。



圖片原始網址:https://lostechies.com/jimmybogard/2016/06/24/automapper-5-0-speed-increases/

新版跟舊版的寫法上有不少的差異,速度也優化了不少。




安裝AutoMapper



從Nuget加入參考



搜尋AutoMapper


安裝



確定

使用AutoMapper




        // GET: Users
        public ActionResult Index()
        {
            return View(db.Users.ToList());
        }


原本程式碼只有簡單地把所有Users資料表的資料取出來,但若是只要把取出來的資料對映到View要使用的ViewModel的話,
如果不用其他工具就要自己手動一個欄位一個欄位去塞值,現在有了AutoMapper 就可以把這些瑣碎的事交給它去處理了。



            var config = new MapperConfiguration(
                        cfg =>
                        {
                            //左邊類別是資料源,右邊類別是目的地
                            cfg.CreateMap<Users, UsersViewModel>()

                            //額外去對映某些欄位
                            .ForMember(x => x.FullName, y => y.MapFrom(s => s.FirstName + s.LastName));

                        });

            //最後對映完成的資料
            List<UsersViewModel> Result = config.CreateMapper().Map<List<Users>, List<UsersViewModel>>(db.Users.ToList());

沒有留言:

張貼留言