2016-10-18 5 views
0

は、私はこれらの二つのモデル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; } 
} 

を持っていると私は、このマッピングがあります:EMAIL_ADDRESSとのEmailAddressをマッピングすることができないので、

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

まあ私のマッピング文句を言わない作業を。

今、私は私があまりにも持って

(要するに、私はアンダースコアを削除し、それをキャメルケースにしたい)、ロジックを作成するか、マッピングが動作しますので、EMAIL_ADDRESSはのEmailAddressに変わりますコードを挿入したいです私は手動マッピング(オートマッパーで.ForMemberメソッド)を使用したくないので、多くのプロパティは

どのように私はこれを達成することができますか?前もって感謝します。

+0

[AutoMapperでのカスタムマッピング]の複製が可能です(http://stackoverflow.com/questions/31706697/custom-mapping-with-automapper) – Marusyk

+1

試しましたか:https://github.com/AutoMapper/AutoMapper/wiki/Configuration#naming-conventions? –

答えて

0

は、リンクにnaming-conventions

に従って、設定に行の下に追加します。

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

これで問題が解決します。

関連する問題