Я хочу сопоставить большинство свойств текущего объекта (this
a FinancialBase
instance) с другим объектом (объект 'destination', schedule
, экземпляр класса Schedule
). Тем не менее, мне нужно сохранить небольшой набор свойств назначения.
У меня это работает с «хаком», где я фиксирую значения явно, а затем использую их в функции 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. Возможно ли это?