AutoMapper条件映射

问题描述 投票:0回答:1

如果准备开始为假,那么我需要将ActualStartDate设置为默认值。或者,也许我将改为可为空。

RequestDates集合将始终只有1条记录。

    public class EngagementDto
    {
        #region Public Properties

        public bool ReadyToStart { get; set; }

        public IEnumerable<RequestDateDto> RequestDates { get; set; }

        #endregion
    }

    public class RequestDateDto
    {
        #region Public Properties

        public DateTime ActualStartDate { get; set; }

        #endregion
    }   

不确定我是否能正确解决这个问题……但这是我到目前为止所拥有的。

            CreateMap<EngagementDto, RequestDateDto>()
                .ForMember(dest => dest.ActualStartDate, opt =>
                {
                    opt.Condition((src, dest) => !src.ReadyToStart);
                    opt.MapFrom(dest => dest.);
                }
c# automapper
1个回答
0
投票

尝试一下,我认为它可以正常工作!

 CreateMap<EngagementDto, RequestDateDto>()
                ForMember(dest => dest.RequestDates, 
                   opt => opt.MapFrom
                   (src => dest.ReadyToStart ? "your default value" : src.ActualStartDate));
© www.soinside.com 2019 - 2024. All rights reserved.