2013-05-27 71 views
4

我繼承了我的基「用戶」類來創建特定於角色的類型。Automapper繼承源和目標

如...

public class Business : User{ 
public string BusinessName; 
} 

我已經做了類似的事情對我的視圖模型,有一個基本的「的usermodel」啓動和繼承,要包括角色的特定功能。

public class BusinessModel : UserModel{ 
[Required()] 
public string BusinessName; 
} 

當我使用Automapper映射改變我的商業模式回到我的業務對象,但不包括以繼承字段的任何變化。

//create map between model and business object 
Mapper.CreateMap<BusinessModel, Business>(); 

//load the relevant business 
var business = GetCurrentBusiness(); 

//map the values across 
Mapper.Map<BusinessModel, Business>(model, business); 

更改自己的「業務」上的任何字段都存在。但是,從用戶繼承的字段的任何更改都不是。

Automapper僅僅是無法映射像這樣的繼承類型?或者我錯過了什麼?

回答

5

您需要爲基本類型創建映射,然後包含繼承類型。 請參閱automapper文檔here

Mapper.CreateMap<UserModel, User>() 
     .Include<BusinessModel, Business>(); 
Mapper.CreateMap<BusinessModel, Business>();