我需要做一些對象之間的映射(例如PersonModel到PersonViewModel),並且正在研究不同的方法來做到這一點。具體來說,我正在使用實體框架並嘗試將生成的模型映射到視圖模型。.NET中的對象 - 對象映射有哪些不同的方法?
但是,我還沒有找到一篇文章或資源來編譯你如何做到這一點。到目前爲止,我遇到了以下幾點:
- 隱式轉換
- 擴展方法(我認爲這是最基本的方法,因爲您手動從一個對象到另一個,它簡單而繁瑣的映射屬性?) (有沒有跟這個工作還)
- 反射(我已經修修補補了一點,但只有管理非常基本的映射)
- Automapper(很受歡迎,但我無法使其與EF很好地工作)
- 超值注射器(尚未與此合作)
- 的Emit映射器(也沒有這個工作還沒有,但可能我會有麻煩使其與EF工作?)
能否請你幫指出並闡述有可用的方法,以及利弊/每個的利弊?例如,我看到一些提到的Automapper比手動映射慢?或者可能指出一篇文章解決這個問題?
編輯:因爲有些人可能會問我有什麼問題AutoMapper,請參閱本:Automapper: How to map IList to EntityCollection
你在問整本文章甚至書本章節。 SO是一個問答網站。並且Automapper在使用EF時沒有問題,主要是因爲EF返回的對象是普通的舊對象。如果你使用EF特定的類,比如'EntityCollection',你做錯了。檢查所有教程,你會看到他們使用最基本的'ICollection' –