【发布时间】:2019-11-01 04:13:06
【问题描述】:
我想将当前对象(this 一个 FinancialBase 实例)的大多数属性映射到另一个对象(“目标”对象,schedule,Schedule 类的一个实例)。但是,我需要保留一小部分目的地的属性。
我已经将它与“hack”一起使用,我在其中明确捕获值,然后在AfterMap 函数中使用这些值。查看示例代码。
var id = schedule.Id;
var parentId = schedule.ParentId;
var scheduleNo = schedule.ScheduleNo;
var schName = schedule.SchName;
var config = new MapperConfiguration(
cfg => cfg.CreateMap<FinancialBase, Schedule>()
.ForMember(d => d.Id, opt => opt.Ignore())
.ForMember(d => d.ParentId, opt => opt.Ignore())
.ForMember(d => d.ScheduleNo, opt => opt.Ignore())
.ForMember(d => d.SchName, opt => opt.Ignore())
.AfterMap((s, d) => d.Id = id)
.AfterMap((s, d) => d.ParentId = parentId)
.AfterMap((s, d) => d.ScheduleNo = scheduleNo)
.AfterMap((s, d) => d.SchName = schName));
var mapper = config.CreateMapper();
schedule = mapper.Map<Schedule>(this);
我不希望使用示例的前四行,而是使用传统的 AutoMapper lambda 表达式将它们包含在内。可能吗?
【问题讨论】:
标签: c# automapper