[英]Automapper flag enum
我正在寫一個MVC網站,它通過viewmodels獲取一些信息。 這是我的數據庫
public class ServiceTime : BaseEntity
{
public int IdRestaurant { get; set; }
public virtual Restaurant Restaurant { get; set; }
public Src.OrderStar.Entities.Day Day { get; set; }
public string StartTime { get; set; }
public string FinishTime { get; set; }
}
這是我的視圖模型
public class ServiceTimeModel
{
public int Id { get; set; }
public int IdRestaurant { get; set; }
public bool Monday { get; set; }
public bool Tuesday { get; set; }
public bool Wednesday { get; set; }
public bool Thursday { get; set; }
public bool Friday { get; set; }
public bool Saturday { get; set; }
public bool Sunday { get; set; }
public DateTime StartTime { get; set; }
public DateTime FinishTime { get; set; }
}
我通過自動映射器將這些類相互轉換。 我可以通過此配置輕松將ServiceTime轉換為ServiceTimeModel
cfg.CreateMap<ServiceTime, ServiceTimeModel>()
.ForMember(dest => dest.Monday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Monday)))
.ForMember(dest => dest.Tuesday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Tuesday)))
.ForMember(dest => dest.Wednesday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Wednesday)))
.ForMember(dest => dest.Thursday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Thursday)))
.ForMember(dest => dest.Friday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Friday)))
.ForMember(dest => dest.Saturday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Saturday)))
.ForMember(dest => dest.Sunday, opt => opt.MapFrom(src => src.Day.HasFlag(Day.Sunday)))
.IgnoreAllNonExisting();
我不能相反,我的意思是無法解決如何將ServiceTimeModel綁定到ServiceTime
我想綁定五個不同的日子來標記枚舉
有任何想法嗎?
使用ResolveUsing方法並創建自己的實現。 例如:(不好,但是可以用)
cfg.CreateMap<ProductServiceTimeModel, ProductServiceTime>()
.ForMember(dest => dest.Day, opt => opt.ResolveUsing(src =>
{
Src.OrderStar.Entities.Day result = (src.Monday ? Day.Monday : 0) | (src.Tuesday ? Day.Tuesday: 0) | (src.Wednesday ? Day.Wednesday : 0) | (src.Thursday ? Day.Thursday: 0) | (src.Friday ? Day.Friday : 0) | (src.Saturday ? Day.Saturday : 0) | (src.Sunday ? Day.Sunday: 0);
return result;
}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.