![](/img/trans.png)
[英]Mapping child classes with parent injected in the constructor using 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.