【问题标题】:AutoMapper custom mappingAutoMapper 自定义映射
【发布时间】:2016-10-18 15:14:05
【问题描述】:

我有这两个模型

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)

我也有太多的属性,所以我不想使用手动映射(自动映射器的.ForMember方法)

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

【问题讨论】:

标签: c# automapper


【解决方案1】:

点击链接naming-conventions

并将下面的行添加到配置中。

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

这将解决问题。

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 2015-10-20
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2017-08-09
    相关资源
    最近更新 更多