2013-05-27 72 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>();