第一次寫MVC檢視一下程式碼
發覺定義了太多ViewModel
只要新增一個欄位後View Controller Model居然都需要改
天阿這一定不會是我想要的
相信寫MVC的人覺對不會想發生這種問題
Google搜尋後發覺有一個好的套件
AutoMapper在NuGet裡搜尋就能找到安裝
來看一下原本的程式碼
public ActionResult Index() { var query = from u in db.Account select new AccountVM { AccountID = u.AccountID, AccountName = u.AccountName, IsUsed = u.IsUsed, LoginIP = u.LoginIP, LoginDate = u.LoginDate, Name = u.Name, Email = u.Email }; return View(query); }看以上程式碼只要加一個欄位每次都要跑來修改
唉~對於最內部系統的人最痛苦的事就是新增欄位了
來看一下使用AutoMapper
public ActionResult Index() { Mapper.CreateMap這樣不管怎麼增加欄位都不需要在Controller修改了(); List account = db.Account.ToList(); List< AccountVM> query = Mapper.Map< List< Account>,List< AccountVM>>(account); return View(query); }
只是目前不知會不會有什麼Bug 參考網址
點我