[英]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.