У меня есть метод AfterMap, который должен использовать контекст, чтобы изменить EntityState некоторых элементов, а также использовать внедренный экземпляр Mapper для отображения связанных данных поверх существующих данных в качестве модификации, а не дополнения.
Моя проблема в том, что я не могу получить инъекцию зависимостей внутри профиля. Если я определяю профиль следующим образом:
public MyProfile(IMapper mapper, MyContext context)
При попытке добавить профиль возникает ошибка, что нет конструктора без параметров. Моя конфигурация при запуске выглядит следующим образом:
var mapperConfig = new MapperConfiguration(cfg => {
cfg.AddMaps("MYAPP");
});
services.AddSingleton<IMapper>(x => mapperConfig.CreateMapper());
Как я могу внедрить зависимости в эти профили для использования в моих методах AfterMap.
Пример профиля для справки:
public class MyProfile : Profile {
IMapper _mapper;
MyContext _context;
public MyProfile(IMapper mapper, MyContext context) {
_mapper = mapper;
_context = context;
CreateMap<Thing1, Thing2>()
.ForMember(d => d.IncidentCauseSubTypes, o => o.Ignore())
.AfterMap((src, dest) => MergeRelatedLists(Things1, Thing2, _mapper, _context));
}
}