04.AutoMapper 之投影(Projection)
投影(Projection)
投影將源轉換為目標而不是扁平化物件模型。如果沒有額為的配置AutoMapper
需要一個扁平化的目標來匹配源型別的命名結構。當你想將源值投影到一個與源結構不完全匹配的目標中,必須指定自定義的成員對映定義。例如,我們可能想要轉換此源結構:
public class CalendarEvent{ public DateTime Date { get; set; } public string Title { get; set; } }
接受網頁上的輸入表單的物件:
public class CalendarEventForm{ public DateTime EventDate { get; set; } public int EventHour { get; set; } public int EventMinute { get; set; } public string Title { get; set; } }
因為目標屬性的名稱與源屬性不完全匹配(CalendarEvent.Date
需要是CalendarEventForm.EventDate
),所以我們需要在型別對映配置中指定自定義成員對映:
// 模型var calendarEvent = new CalendarEvent { Date = new DateTime(2008, 12, 15, 20, 30, 0), Title = "Company Holiday Party"};// 配置 AutoMapperMapper.Initialize(cfg => cfg.CreateMap<CalendarEvent, CalendarEventForm>() .ForMember(dest => dest.EventDate, opt => opt.MapFrom(src => src.Date.Date)) .ForMember(dest => dest.EventHour, opt => opt.MapFrom(src => src.Date.Hour)) .ForMember(dest => dest.EventMinute, opt => opt.MapFrom(src => src.Date.Minute)));// 執行對映CalendarEventForm form = Mapper.Map<CalendarEvent, CalendarEventForm>(calendarEvent); form.EventDate.ShouldEqual(new DateTime(2008, 12, 15)); form.EventHour.ShouldEqual(20); form.EventMinute.ShouldEqual(30); form.Title.ShouldEqual("Company Holiday Party");
每個自定義成員配置都使用一個委託動作來單獨配置。 在上面的示例中,我們使用MapFrom
來執行自定義源到目標成員的對映。 MapFrom
方法使用lambda表示式作為引數,在對映期間對lambda表示式進行求值後賦值給目標成員。 MapFrom
表示式可以是任何Func <TSource,object>
的 lambda表示式。
作者:這個使用者有點逗
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2459/viewspace-2820170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Angular 內容投影 content projection 的一個問題的單步除錯AngularProject除錯
- Angular 內容投影 content projection 關於選擇器問題的單步除錯AngularProject除錯
- Angular 內容投影 content projection 關於條件渲染問題的單步除錯AngularProject除錯
- Angular 基於自定義指令的內容投影 content projection 問題的單步除錯AngularProject除錯
- Madagascar Projection ChangeProject
- Threes.js入門篇之4 - World View ProjectionJSViewProject
- CMPEN/EE 454 oncamera projectionProject
- 【CLP】Gaussian Projection Reduction & Randomized Binary ReductionProjectrandomZed
- Angular元件——投影Angular元件
- 地圖投影地圖
- 計算機圖形:三維觀察之投影變換計算機
- jmespath(2)投影ProjectionsProject
- EASE-Grid投影
- 視訊投影(二維視訊投影到三維模型上)模型
- 互動投影+沉浸式互動投影綜合解決方案
- 全息水幕投影,打造投影視覺新體驗!佩京科技視覺
- win10筆記本投影到投影儀的方法_win10電腦如何投屏到投影儀Win10筆記
- 裸眼3D全息投影|全息投影技術解決方案3D
- 手機投影到deepin
- win10投影設定方法_win10怎麼設定投影Win10
- 無線投影+雙屏顯示 愛普生商務投影全體驗
- 雙11李家琦直播間有投影儀嗎?3000元投影怎麼選?
- [OpenGL ES] 正交投影
- 互動投影常見形式
- 【opencv學習筆記】027之直方圖反向投影 - calcBackProject函式詳解OpenCV筆記直方圖Project函式
- 安卓手機如何投影到電腦?手機螢幕投影到電腦安卓
- win10如何把螢幕投影_win10怎麼投影到螢幕Win10
- win10如何連線投影儀 win10系統投影儀設定Win10
- win10投影快捷鍵在哪裡_win10投影快捷鍵ctrl加什麼Win10
- win10投影儀怎樣連線_win10投影儀連線步驟Win10
- 投影儀怎麼連線電腦 投影儀連線電腦的圖文教程
- 投影儀哪款好用?十年發燒友總結口碑投影儀推薦
- WebGL-三維透視投影Web
- win10系統怎麼連線投影儀_win10連線投影儀的方法Win10
- 全面分析全息投影的成像過程
- AC-DMIS 5.3投影到任意麵
- 使用screego自建桌面投影/共享螢幕Go
- win+p投影 開啟螢幕