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除錯
- SQL ProjectionSQLProject
- Angular 內容投影 content projection 關於選擇器問題的單步除錯AngularProject除錯
- Angular 內容投影 content projection 關於條件渲染問題的單步除錯AngularProject除錯
- Angular 基於自定義指令的內容投影 content projection 問題的單步除錯AngularProject除錯
- Threes.js入門篇之4 - World View ProjectionJSViewProject
- 【CLP】Gaussian Projection Reduction & Randomized Binary ReductionProjectrandomZed
- Entity Framework Tutorial Basics(16):Linq-to-Entities Projection QueriesFrameworkProject
- Web Mercator投影與反投影計算公式Web公式
- 計算機圖形:三維觀察之投影變換計算機
- Angular元件——投影Angular元件
- 反向投影(BackProjection)Project
- 地圖投影地圖
- 互動投影+沉浸式互動投影綜合解決方案
- jmespath(2)投影ProjectionsProject
- 全息水幕投影,打造投影視覺新體驗!佩京科技視覺
- 視訊投影(二維視訊投影到三維模型上)模型
- win10筆記本投影到投影儀的方法_win10電腦如何投屏到投影儀Win10筆記
- 裸眼3D全息投影|全息投影技術解決方案3D
- win10投影設定方法_win10怎麼設定投影Win10
- 13 Three.js照相機的正交投影和透視投影JS
- 安卓手機如何投影到電腦?手機螢幕投影到電腦安卓
- win10如何把螢幕投影_win10怎麼投影到螢幕Win10
- win10如何連線投影儀 win10系統投影儀設定Win10
- win10投影快捷鍵在哪裡_win10投影快捷鍵ctrl加什麼Win10
- win10投影儀怎樣連線_win10投影儀連線步驟Win10
- 投影儀怎麼連線電腦 投影儀連線電腦的圖文教程
- 投影儀哪款好用?十年發燒友總結口碑投影儀推薦
- WebGL-三維透視投影Web
- 電腦連線投影儀教程
- Polar 投影c#版本移植C#
- 【opencv學習筆記】027之直方圖反向投影 - calcBackProject函式詳解OpenCV筆記直方圖Project函式
- win10系統怎麼連線投影儀_win10連線投影儀的方法Win10
- win10投影失敗提示:你的電腦不能投影到其他螢幕怎麼辦?Win10
- opencv——影像直方圖與反向投影OpenCV直方圖
- 使用screego自建桌面投影/共享螢幕Go
- 齊次座標與投影幾何
- 全面分析全息投影的成像過程