Automapper不映射基地

本文关键字:映射 Automapper | 更新日期: 2023-09-27 18:10:45

你好,我有一些麻烦,使我的地图工作在automapper

我有两个dto BaseDto和BaseOrganizationDto

public class BaseDto
{}
public class SensitiveBaseDto : BaseDto
{}

我使用以下映射:

CreateMap<IEntity, BaseDto>()
                .Include<IEntity, SensitiveBaseDto>()
                .IncludeBase<IEntity, BaseDto>();

我试图得到一个特定的dto基于一些逻辑,如

public BaseDto MapToDto(Guid asSeenById, IEntity entity)
    if (entity.Id != asSeenById)
    {
      return this.MapToDto<BaseDto>(entity);
    }
    return this.MapToDto<SensitiveBaseDto>(entity);
}

但是它总是返回一个SensitiveBaseDto,我已经验证了MapToDto方法中的逻辑是正确执行的。

我错过了什么?

Automapper不映射基地

是这样解决的:

public override TDtoType MapToDto<TDtoType>(IEntity entity)
{
    var dto = typeof(TDtoType) == typeof(SensitiveDto) 
        ? new SensitiveDto() 
        : new BaseDto();
    this.Engine.Map(entity, dto);
    return dto as TDtoType;
}