簡體   English   中英

AutoMapper 條件映射

[英]AutoMapper Conditional Mapping

如果准備開始為假,那么我需要將 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.);
                }

試試這個,我認為它可以工作!

 CreateMap<EngagementDto, RequestDateDto>()
                ForMember(dest => dest.RequestDates, 
                   opt => opt.MapFrom
                   (src => dest.ReadyToStart ? "your default value" : src.ActualStartDate));

方式二

像這樣改變你的 model

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

接着

CreateMap<EngagementDto,RequestDateDto>()
    .ForMember(dest => dest.RequestDates, opt => {
        opt.PreCondition(src => (src.ReadyToStart));
        opt.MapFrom(src => src.ActualStartDate);

暫無
暫無

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

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