我继承了我的基础“用户”类来创建角色特定类型。
...例如
public class Business : User{
public string BusinessName;
}
我为我的View Models做了类似的事情,从一个基本的“UserModel”开始,并继承它以包含特定于角色的功能。
public class BusinessModel : UserModel{
[Required()]
public string BusinessName;
}
当我使用Automapper将我的BusinessModel的更改映射回我的Business对象时,它不包括对继承字段的任何更改。
//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);
对“业务”中的任何字段进行更改。但是,从User继承的字段的任何更改都不是。
Automapper是否无法映射这样的继承类型?或者我错过了什么?
答案 0 :(得分:5)
您需要为基本类型创建映射,然后包含继承的类型。 请参阅automapper docs here。
Mapper.CreateMap<UserModel, User>()
.Include<BusinessModel, Business>();
Mapper.CreateMap<BusinessModel, Business>();