【问题标题】:Automapper Inherited Source and DestinationAutomapper 继承的源和目标
【发布时间】:2018-03-05 22:52:53
【问题描述】:

我继承了我的基本“用户”类来创建角色特定类型。

例如...

public class Business : User{
 public string BusinessName;
}

我为我的视图模型做了类似的事情,从一个基本的“用户模型”开始并继承它以包含角色特定的功能。

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 是否无法像这样映射继承的类型?还是我错过了什么?

【问题讨论】:

    标签: c# .net asp.net-mvc automapper


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-09
      • 2015-06-09
      • 2012-01-03
      • 2012-12-09
      • 2017-03-13
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多