我正在考慮在即將推出的項目中使用AutoMapper並試圖找到可能的「瓶頸」。目前我能想象到的最複雜的情況如下: 在數據庫中表示爲3(例如)表的域類(我的數據訪問層是LINQ to SQL)。爲了構建類別i需要執行3個查詢的一個實例:通過從ID表B中複雜的DAL - > BL映射使用AutoMapper
- 通過從表A中選擇ID(1行,直接進入
Class
屬性) - 選擇(0..1行,去選購
Class.Code
屬性) - 選擇由表C中編號(0..N行,去
Class.Parameters
集合)
,我不知道如何配置的映射。下面是我考慮的選擇:
- 執行3個查詢和映射
Tuple<A,B,C>
- >Class
- 聯合使用查詢1和2外連接(更有效的)。但是,我如何處理匿名類型?
- 將datacontext注入到映射中,定義
A
→Class
映射並讓類型轉換器完成這項工作?
沒有看起來像一個勝利。你會建議什麼?那麼,這種複雜的情況是非常罕見的(10-20%),我可以手動完成,剩下的80-90%與AutoMapper一樣好。但我想知道AutoMapper是不是爲這種策略設計的,或者我錯過了一些重要的東西。
有什麼方法可以利用數據庫視圖來執行步驟1-3?然後你可以在視圖對象和你的類之間建立一個簡單的1:1映射。 – PatrickSteele 2010-10-12 11:53:55
感謝您的關注!從技術上講,我可以創建一個視圖,執行1和2之間的外連接,然後完全連接3,但這樣的非規範化絕對不是我想要的(從db增加網絡流量和更復雜的地圖邏輯來處理空值,對不對?) 。 – UserControl 2010-10-12 12:20:25