[英]Automapper omit CreateMap if naming convention is used
基於這個問題,我想知道是否可以省略CreateMap<PERSON, Person>();
我正在使用Automapper 7.0.1,配置文件具有以下形式
public class AutoMapperProfile : Profile
{
public AutoMapperProfile()
{
//...
//...
SourceMemberNamingConvention = new UpperUnderscoreNamingConvention();
DestinationMemberNamingConvention = new PascalCaseNamingConvention();
CreateMap<PERSON, Person>(); //what I want to omit
}
}
我注意到,如果刪除此行,則CreateMap<PERSON, Person>();
那么只有不包含任何下划線的屬性會被映射,並且映射器會拋出異常,並提示消息包含未映射的屬性及其列表。
當我們只想基於命名約定映射所有屬性時,為什么要使用CreateMap
?
編輯:
@Lucian回答后,我從Profile中刪除了命名約定,並在初始化時添加了它,就像這樣
Mapper.Initialize(cfg =>
{
cfg.AddProfile<AutoMapperProfile>();
cfg.SourceMemberNamingConvention = new UpperUnderscoreNamingConvention();
cfg.DestinationMemberNamingConvention = new PascalCaseNamingConvention();
});
現在,我不必使用CreateMap
。
默認地圖(如果省略CreateMap,則由AM創建的默認地圖)是全局的,因此肯定不在您創建的配置文件中。 因此,在個人資料上設置命名約定無濟於事。 在全局配置上設置命名約定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.