AutoMapper自定义映射

时间:2016-10-18 15:14:06

标签: c# automapper

我有这两个模型

public class ModelA
{
    public string name { get; set; }
    public string email_address { get; set; }
}

public class ModelB
{
    public string Name { get; set; }
    public string EmailAddress { get; set; }
}

我有这个映射:

Mapper.Initialize(cfg => cfg.CreateMap<OldStudent, NewStudent>());
var newModel = Mapper.Map<NewStudent>(oldStudent);

我的映射无法正常工作,因为无法映射email_address和EmailAddress。

现在我想创建一个逻辑或插入代码,其中email_address将转向EmailAddress,因此映射将起作用(简而言之,我想删除下划线并使其成为CamelCase)

我也有太多属性,所以我不想使用手动映射(由automapper提供.ForMember方法)

我知道如何实现这一目标?提前谢谢。

1 个答案:

答案 0 :(得分:0)

点击链接naming-conventions

并将以下行添加到配置。

Mapper.Initialize(cfg => {
  cfg.SourceMemberNamingConvention = new LowerUnderscoreNamingConvention();
  cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
});

这可以解决问题。