AutoMapper - 映射源对象中不存在的目标对象 属性

AutoMapper - Map destination object's property that does not exist in source object

我正在将 class Process 转换为 ProcessDTOProcessDTO 对象有一个名为 ProcessSteps 的 属性,它在 Process 中不存在。我希望 ProcessSteps-属性 转换为 ProcessStepsDto。我正在为 AutoMapper 使用全局配置。

我试过使用

CreateMap<Process, ProcessDto>()
    .ForMember(dest=>dest.Steps, opt => opt.MapFrom(s => Mapper.Map<ProcessStepDto>(s)));

但这是错误的..


public class Process
{

}

public class ProcessDto
{
//This property does not exists in source object and get's created on get. I want this to be cast to "ProcessStepDto[]"
    public ProcessStep[] Steps
    {
        get
        {
            ProcessStepRepository repository = new ProcessStepRepository();
            return repository.Select(x => x.ProcessId == this.Id && x.Active).OrderBy(x=>x.Position).ToArray();
        }
    }
}

public class ProcessStep
{
 ...
}

public class ProcessStepDto
{
 ...
}

更新 在我使用 AutoMapper 将我的对象 Process 映射到 ProcessDto 之后,我还希望将 Steps 的 属性 映射到 ProcessStepsDto。目前它保持为 ProcessStep

如果你想 return ProcessDtoProcessStepDto[]ProcessDto 应该定义 属性 类型 ProcessStepDto[] 而不是 ProcessStep[].

    public class ProcessDto
    {
        public ProcessStepDto[] Steps
        {
            get
            {
                ProcessStepRepository repository = new ProcessStepRepository();                     

                return repository.Select(x => x.ProcessId == this.Id && x.Active).Select(s => new ProcessStepDto { PropertyInProcessStepDto = s.PropertyInProcessStep }).OrderBy(x=>x.Position).ToArray();
            }
        }
    }