多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 實體類型的轉換? Automapper OR 自定義

實體類型的轉換? Automapper OR 自定義

來源:程序員人生   發布時間:2015-05-28 09:07:27 閱讀次數:3581次

在引入了entity framework 以后,系統有了1種新的需求,即對Viewmodel 和model之間的相互轉換。

這之間有各種境地。今天拿出來品味1下。


1 用automapper

  方法很簡單。①添加對automapper的援用


② 在援用的時候,創建兩個實體之間的映照關系。我們要做的只是將要映照的兩個類型告知AutoMapper(調用Mapper類的Static方法CreateMap并傳入要映照的類型):

 

<span style="font-family:KaiTi_GB2312;font-size:18px;"> Mapper.CreateMap<StudentViewModel, BasicStudentEntity>();</span>

③實行轉換

<span style="font-family:KaiTi_GB2312;font-size:18px;"> BasicStudentEntity enStudent = Mapper.Map<StudentViewModel, BasicStudentEntity>(student);</span>
如果studentviewmodel中有值為空的屬性,AutoMapper在映照的時候會把BasicStudentEntity中的相應屬性也置為空。固然我所說的是1種最為簡單的使用方式。最簡單,但是其可用范圍也是最小。要求結構完全1致,且字段名也完全相同。很多情況下由于viewmodel 中的1些字段和model的不完全1致。致使我們使用這樣的方式,非常不靈活。


其實automapper還有1種使用情況,即字段名沒必要完全1致。(但是其意義應1致),這樣的話我們可以定義類型間的簡單映照規則。

<span style="font-family:KaiTi_GB2312;font-size:18px;">1. var map = Mapper.CreateMap<StudentViewModel,BasicStudentEntity>();   2. map.ForMember(d => d.Name, opt => opt.MapFrom(s => s.SchoolName));   </span>

但是即使是這樣的話,還是不能解決我的另外一個問題。那就是當StudentViewModel比BasicStudentEntity 中的字段要多(意義也不1致)的情況下,沒法進行轉換。


2自定義

這時候候我們想到了我們自己轉換寫的自定義方法。

<span style="font-family:KaiTi_GB2312;font-size:18px;"> #region 3.0.0 學生管理公共方法 將view 轉換成model(basicStudent) /// <summary> /// 學生管理公共方法 將view 轉換成model(basicStudent) /// </summary> /// <param name="enstudentList"></param> /// <returns></returns> public List<BasicStudentEntity> ChangeViewToBasicstudentModel(List<StudentViewModel> enstudentList) { List<BasicStudentEntity> studentList = new List<BasicStudentEntity>(); foreach (var item in enstudentList) { BasicStudentEntity student = new BasicStudentEntity() { StudentID = item.StudentID, StudentNo = item.StudentNo, UserCode = item.UserCode, EntryPartyTime = item.EntryPartyTime, Speciality = item.Speciality, HealthCondition = item.HealthCondition, ExamineeNumber = item.ExamineeNumber, FatherName = item.FatherName, MotherName = item.MotherName, FatherPhone = item.FatherPhone, MotherPhone = item.MotherName, TrainDestination = item.TrainDestination, Note = item.Note, Operator = item.Operator, TimeStamp = item.TimeStamp, CreditCardNo = item.CreditCardNo, Name = item.Name, Sex = item.Sex, PoliticalStatus = item.PoliticalStatus, PreviousName = item.PreviousName, Email = item.Email, CellPhoneNumber = item.CellPhoneNumber, HomeTelephone = item.HomeTelephone, BirthPlace = item.BirthPlace, HomeAddress = item.HomeAddress, Nation = item.Nation, RoomID = item.RoomID, DirectionID = item.DirectionID, ClassID = item.ClassID }; studentList.Add(student); } return studentList; } #endregion </span>


自己的方法還是用著方便1點。如果是底層封裝的話,是否是再加上泛型就能夠大家共同調用了。這部份沒有自己實踐。僅供交換。



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩欧美一级a毛片欧美一级 | japanese 护士| 欧美日韩在线精品一区二区三区 | 国产精品亚洲片在线观看麻豆 | 殴美xxx| 亚洲天堂一区二区 | 最近更新中文字幕4 | 国产乱人乱精一区二区视频密 | 欧美成视频人免费淫片 | 国产精品嫩草研究院成人 | 欧美一区二区三区在线观看 | 亚洲最稳定资源在线观看 | 日本欧美韩国一区二区三区 | 午夜欧美在线 | 日本成年一区久久综合 | 稀缺资源呦视频在线网站 | 亚洲资源站资源网在线 | 欧美激情亚洲一区中文字幕 | 大香伊在人线免费 | 一国产一级淫片a免费播放口 | 曰本一区| 日韩免费一区 | 成年人在线视频网站 | 最近中文字幕mv在线高清 | 亚洲精品免费在线观看 | 在线视频精品播放 | 亚洲综合区图片小说区 | 色优影院 | 欧美videos极品 | 国产h肉在线视频免费观看 国产h视频 | 国产高清在线精品一区二区三区 | 久操精品在线观看 | 性欧美最新另类 | 亚洲免费专区 | 日本高清专区一区二无线 | 国产欧美一区二区三区在线看 | a免费毛片在线播放 | 最新国产网站 | 欧美性黑人极品 hd 欧美性黑人极品hd 欧美性活生活视频 | 亚洲欧美久久精品一区 | 最新亚洲国产有精品 |