2014-01-21 157 views
2

我想將多個域模型映射到一個視圖模型。我發現this鏈接,這是能夠做到這一點。但是,我有幾個視圖模型中不存在的域模型屬性。當我嘗試映射模型時,出現錯誤:AutoMapper映射多個模型並忽略不存在的屬性

Missing type map configuration or unsupported mapping.

這是因爲我不忽略其他屬性。我見過的所有答案都是在Mapper.CreateMap函數中使用option.Ignore()提到的。但是,在我提供的鏈接中,不使用Mapper.CreateMap函數。對AutoMapper唯一的電話是:

Mapper.Map(source, destination, sourceType, destinationType); 

我該怎麼辦忽略在這種情況下?還是有更好的方法來同時映射多個模型和忽略屬性?

回答

5

你應該有一個Mapper.CreateMapApplication_Start所有你正在處理的對象:

Mapper.CreateMap<SourceDomain1, MyViewModel>(); 
Mapper.CreateMap<SourceDomain2, MyViewModel>(); 
Mapper.CreateMap<SourceDomain3, MyViewModel>(); 

,你在你的領域模型中不存在您的視圖模型性能的事實是不一個問題。他們不會被考慮在內。另一方面,在配置AutoMapper時,可以使用.Ignore()方法指示應該忽略源和目標中存在的某個屬性。

+0

Got it!如果我在鏈接中使用EntityMapper類,我認爲沒有必要這樣做。非常感謝你! – janinaj

+0

鏈接中的'EntityMapper'類只是AutoMapper的一個包裝。它並沒有取代也沒有凌駕其基本概念。 –