【ASP.net MVC】使用 AutoMapper 實作 Models 資料互相轉換 (DTO)
2013-12-26 11:45
405 查看
前言
今天上班的時候,剛好需要N個資料表的資料拋轉成為一個 Model ,然後到了View中去顯示這些資料,但是這是一個難題所在!以前我用的方式是把每一個屬性都一一列出...這樣不僅很累又容易出錯!常常把許多時間都花在debug上...現在有N個資料表的資料,錯誤率更高,撰寫程式碼的時間也大大的提升...
上面那段的程式碼的確是一種方法,但只要眼花手殘少打了一行code,就得回頭一個一個檢查!今天詢問了 Sky大,跟我說可以利用 AutoMapper去做到自動映射的功能,而且程式碼只要兩行!減少很多時間去debug跟keyin code!
主題
說了這麼多,還是進入今天的主角吧!AutoMapper (http://automapper.codeplex.com/)是非官方開發出來的一個對應工具,要放進MVC專案中,最簡單的方法就是透過NuGet下載
接下來下載我們所需要的 AutoMapper
安裝完畢後,我們要先引用命名空間
接下來我們就可以使用這個套件囉!
使用 AutoMapper之前,我們要先告訴她,我們是哪兩個Class要互相轉換
Mapper.CreateMap<Member, MemberView>();
之後我們再把我們要轉換的變數放進去,就可以了
Mapper.Map<Member, MemberView>(User);
最後我們的Code就會長得像這樣
Member User= new Member();
MemberView MemberData = new MemberView ();
Mapper.CreateMap<Member, MemberView>();
MemberData = Mapper.Map<Member, MemberView>(User);
後記
AutoMapper 功能不只這麼簡單,但是我只需要這項功能,而在對應上也有一些限制,屬性的名稱需要相同,才有辦法映射!
有需要的朋友,可以繼續試玩 ^_^
今天上班的時候,剛好需要N個資料表的資料拋轉成為一個 Model ,然後到了View中去顯示這些資料,但是這是一個難題所在!以前我用的方式是把每一個屬性都一一列出...這樣不僅很累又容易出錯!常常把許多時間都花在debug上...現在有N個資料表的資料,錯誤率更高,撰寫程式碼的時間也大大的提升...
1 | Member User = new Member(); |
2 | MemberView MemberData = new MemberView (); |
3 | MemberData .Account = User .UserAccount; |
4 | MemberData .Password = User .UserPassword; |
5 | MemberData .UserName = User .UserName; |
6 | //其他屬性... |
7 | return MemberData ; |
主題
說了這麼多,還是進入今天的主角吧!AutoMapper (http://automapper.codeplex.com/)是非官方開發出來的一個對應工具,要放進MVC專案中,最簡單的方法就是透過NuGet下載
接下來下載我們所需要的 AutoMapper
安裝完畢後,我們要先引用命名空間
1 | using AutoMapper; |
使用 AutoMapper之前,我們要先告訴她,我們是哪兩個Class要互相轉換
Mapper.CreateMap<Member, MemberView>();
之後我們再把我們要轉換的變數放進去,就可以了
Mapper.Map<Member, MemberView>(User);
最後我們的Code就會長得像這樣
Member User= new Member();
MemberView MemberData = new MemberView ();
Mapper.CreateMap<Member, MemberView>();
MemberData = Mapper.Map<Member, MemberView>(User);
後記
AutoMapper 功能不只這麼簡單,但是我只需要這項功能,而在對應上也有一些限制,屬性的名稱需要相同,才有辦法映射!
有需要的朋友,可以繼續試玩 ^_^
相关文章推荐
- ASP.NET MVC 六 Models中使用LINQ自动生成的实体类--(提交表单)
- Asp.mvc(二)~使用AutoMapper实现领域模型与DTO映射
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- ASP.NET MVC 五 Models中使用LINQ自动生成的实体类
- 在ASP.Net MVC框架下使用富文本编辑器(FCKEditor,更新至:v1.0.1)(2010-05-22:已加上源代码)
- ASP.NET MVC中Controller的使用Demo
- 跟ASP.NET MVC一起使用jQuery
- 从零开始写C# MVC框架之--- 使用Areas分离ASP.NET MVC项目
- ASP.NET MVC应用程序中实现国际化(结合使用AngularJS)
- ASP.NET MVC应用程序使用异步及存储过程
- ASP.NET MVC使用jQuery实现Autocomplete
- Asp.net Mvc中MVCContrib中无法使用Castle的发解决方案
- Asp.net MVC使用KindEditor4
- jqGrid asp.net mvc 使用
- 使用XML文件来动态配置ASP.NET MVC的Route规则 【转】
- Asp.net MVC 3使用 Area 小结
- Asp.net MVC 使用PagedList(新的已更名 为X.PagedList.Mvc) 分页
- Asp.net Mvc Framework可以在Controller中使用的Url.Action方法
- ASP.NET MVC Area使用-将Area设置成独立项目
- ASP.NET MVC中使用UpdatePanel的方法