簡體   English   中英

AutoMapper 在子類中使用父類映射

[英]AutoMapper use parent class mapping in child classes

我有兩個父類

class Settings
{
     public Field
}

class SettingsDb
{
    public  FieldDB
}

和字段映射寬度 FieldDB 通過 ForMember 表達式

CreateMap<SettingsDb, Settings>()
                 .ForMember(dest => dest.Field,
                 opt => opt.MapFrom(src => some lambda with src.FieldDb));

我也有兩個子類

class AdminSettings : Setting
{
inherits Field
}

class AdminSettingsDb : SettingDb
{
inherits FieldDb
}

如何在不為這個繼承的字段再次執行 ForMember 的情況下將 AdminSettings 與 AdminSettingsDb 映射?

CreateMap<AdminSettings, AdminSettingsDb>(); 

現在映射后此字段為空

更簡單的解決方案

   CreateMap<BaseEntity, BaseDto>()
       .ForMember(dest => dest.SomeMember, opt => opt.MapFrom(src => src.OtherMember));

    CreateMap<DerivedEntity, DerivedDto>()
        .IncludeBase<BaseEntity, BaseDto>();

在父類的映射中包含子類。

CreateMap<SettingsDb, Settings>()
    .Include<AdminSettings, AdminSettingsDb>()
    .ForMember(dest => dest.Field,
             opt => opt.MapFrom(src => some lambda with src.FieldDb));

CreateMap<AdminSettings, AdminSettingsDb>(); 

請參閱映射繼承

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM