Auto mapper - Редактировать объект перед картой - PullRequest
0 голосов
/ 14 мая 2018

У меня есть объект навыка типа EmployeeSkillDTO, я хочу использовать автоматическое отображение, но я хочу установить CreationTime = DateTime.Now, но обратите внимание, что объект навыка имеет creationTime = null

EmployeeSkillController:

EmployeeSkill ski = context.EmployeeSkill.Where(r => r.SkillID == skill.SkillID && r.EmployeeID == skill.EmployeeID).FirstOrDefault();

if (ski == null){
   Mapper.Initialize(cfg =>{
      cfg.CreateMap<EmployeeSkillDTO, EmployeeSkill>();
   });

   var map = Mapper.Map<EmployeeSkillDTO, EmployeeSkill>(skill);

   //ski = new EmployeeSkill
   //{
   //    SkillID = skill.SkillID,
   //    EmployeeID = skill.EmployeeID,
   //    Major = skill.Major,
   //    YearOfExperience = skill.YearOfExperience,
   //    CreatedBY = skill.CreatedBY,
   //    CreationTime = DateTime.Now,
   //};
context.EmployeeSkill.Add(map);

Закомментированная часть перед использованием автоматического сопоставления .....

1 Ответ

0 голосов
/ 14 мая 2018

Что-то вроде

cfg.CreateMap<EmployeeSkillDTO, EmployeeSkill>()
   .ForMember(x => x.CreationTime, opt => opt.ResolveUsing(src => DateTime.Now));

может сработать?

...