聚合根 WorkOrder 工单
public class WorkOrder: FullAuditedAggregateRoot<Guid>{
public string ProjectName { get; private set; }
public string TaskCode { get; private set; }
public HistoryTime HistoryTime { get; private set; }
}
值对象 HistoryTime 历史工时
public class HistoryTime : ValueObject
{
public double? SetupManhour { get; set; }
public double? PrimaryLineManhour { get; set; }
public double? SecondaryLineManhour { get; set; }
protected override IEnumerable<object> GetAtomicValues()
{
yield return SetupManhour;
yield return PrimaryLineManhour;
yield return SecondaryLineManhour;
}
}
工单DOT对象 WorkOrderDto
public class WorkOrderDto{
public string ProjectName { get; set; }
public string TaskCode { get; set; }
public double? SetupManhour { get; set; }
public double? PrimaryLineManhour { get; set; }
public double? SecondaryLineManhour { get; set; }
}
AutoMapper 配置
CreateMap<WorkOrderDto,WorkOrder>().ReverseMap()
.ForMember(dbset => dbset.PrimaryLineManhour , opt => opt.MapFrom(s => s.HistoryTime .PrimaryLineManhour ))
.ForMember(dbset => dbset.SetupManhour , opt => opt.MapFrom(s => s.HistoryTime.SetupManhour))
.ForMember(dbset => dbset.SecondaryLineManhour , opt => opt.MapFrom(s => s.HistoryTime .SecondaryLineManhour))
这样就完成了实体内包含值对象 映射成DTO