2010-03-03 136 views

回答

310

使用接受現有的目標過載:

Mapper.Map<Source, Destination>(source, destination); 

是的,它返回的目標對象,但是這只是一些其他模糊的場景。這是同一個對象。

+15

謝謝,吉米......我特意從AutoMapper沒去,因爲我害怕學習曲線影響我的日程安排的創建地圖。我很抱歉,我離開這麼久......這比我最初想象的要容易得多。 –

+6

Automapper必須是其中最有用的庫之一。我也避免了很長時間,太久了。我今天開始使用它,並且對使用起來非常容易感到非常驚訝。 – mcottingham

+3

不適合我。我試圖映射到相同的類型,但它返回新的對象。 用戶u1,u3 =新用戶(); u1 =新用戶 { ID = 1, NickName =「vami」 }; 用戶u4 = Mapper.Map(u1,u3); Assert.AreEqual(u1.Id,u3.Id); Assert.AreEqual(u1.NickName,u3.NickName); –

10

爲了做到這一點,您必須爲源和目標類型創建地圖,即使它們是相同的類型。 如果你想 Mapper.Map<User, User>(user1, user2); 這意味着你需要這樣的 Mapper.Create<User, User>()

+0

哈!我剛剛找到了相同的內容,並在接受的答案中添加了評論。 恕我直言接受的答案沒有你的解釋是不完整的,但在我的評論後,它可能是,最後:) –

+0

這是一個很好的補充。然而,原來的問題沒有提到源和目的地的類型,也沒有要求它們是同一類型。 – jpaugh

相關問題