C# 自动映射继承的源和目标

C# 自动映射继承的源和目标,c#,.net,asp.net-mvc,automapper,C#,.net,Asp.net Mvc,Automapper,我继承了我的基本“User”类来创建特定于角色的类型 例如 我对我的视图模型也做了类似的事情,从一个基本的“UserModel”开始,并继承它以包含特定于角色的功能 public class BusinessModel : UserModel{ [Required()] public string BusinessName; } 当我使用Automapper将对业务模型的更改映射回业务对象时,它不包括对继承字段的任何更改 //create map between model and bus

我继承了我的基本“User”类来创建特定于角色的类型

例如

我对我的视图模型也做了类似的事情,从一个基本的“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);
//在模型和业务对象之间创建映射
CreateMap();
//加载相关业务
var business=GetCurrentBusiness();
//将值映射到
Mapper.Map(模型、业务);
存在对“业务”it自身上任何字段的更改。但是,不会对从用户继承的字段进行任何更改


Automapper是否无法像这样映射继承的类型?还是我遗漏了什么?

您需要为基类型创建映射,然后包括继承的类型。 请参阅automapper文档

Mapper.CreateMap()
.Include();
CreateMap();
//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);
Mapper.CreateMap<UserModel, User>()
      .Include<BusinessModel, Business>();
Mapper.CreateMap<BusinessModel, Business>();