C# 自动映射条件映射

C# 自动映射条件映射,c#,automapper,C#,Automapper,如果ready to start为false,则需要将ActualStart日期设置为默认值。或者我会改成一个可以为null的 RequestDates集合始终只有一条记录 public class EngagementDto { #region Public Properties public bool ReadyToStart { get; set; } public IEnumerable<RequestDateDt

如果ready to start为false,则需要将ActualStart日期设置为默认值。或者我会改成一个可以为null的

RequestDates集合始终只有一条记录

    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
    }   
public-class-engagedto
{
#区域公共财产
公共bool ReadyToStart{get;set;}
公共IEnumerable RequestDates{get;set;}
#端区
}
公共类requestdateto
{
#区域公共财产
公共日期时间实际开始日期{get;set;}
#端区
}   
我不确定我是否正确地处理了这件事……但这就是我目前所拥有的

            CreateMap<EngagementDto, RequestDateDto>()
                .ForMember(dest => dest.ActualStartDate, opt =>
                {
                    opt.Condition((src, dest) => !src.ReadyToStart);
                    opt.MapFrom(dest => dest.);
                }
CreateMap()
.ForMember(dest=>dest.ActualStartDate,opt=>
{
选项条件((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));
CreateMap()
FormMember(dest=>dest.RequestDates,
opt=>opt.MapFrom
(src=>dest.ReadyToStart?“您的默认值”:src.ActualStartDate));
第二条路

像这样改变你的模型

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

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

试试这个,我想它可以工作

 CreateMap<EngagementDto, RequestDateDto>()
                ForMember(dest => dest.RequestDates, 
                   opt => opt.MapFrom
                   (src => dest.ReadyToStart ? "your default value" : src.ActualStartDate));
CreateMap()
FormMember(dest=>dest.RequestDates,
opt=>opt.MapFrom
(src=>dest.ReadyToStart?“您的默认值”:src.ActualStartDate));
第二条路

像这样改变你的模型

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

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

我在此部分中没有访问dest的权限…src=>dest.ReadyToStarttry此,我添加了其他方式我在此部分中没有访问dest的权限…src=>dest.ReadyToStarttry此,我添加了其他方式