Я использую Automapper для приведения моих DTO в ядро Do tNet без каких-либо проблем. Это работает нормально.
Но мне интересно знать, как система вызывает мой класс, который управляется из класса Profile?
public class ViewModelToEntityMappingProfile : Profile
{
public ViewModelToEntityMappingProfile()
{
CreateMap<RegistrationViewModel, AppUser>().ForMember(au => au.UserName, map => map.MapFrom(vm => vm.Email));
}
}
Приведенный выше класс необходим для приведения моих классов. Но мне интересно, как он вызывал класс ViewModelToEntityMappingProfile, когда я вызываю свои методы API без каких-либо прямых вызовов? там также нет ссылки, которая использовала его в IDE.
Мой API (только для дополнительной информации)
public async Task<IActionResult> Post([FromBody] RegistrationViewModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
var userIdentity = _mapper.Map<AppUser>(model);
var result = await _userManager.CreateAsync(userIdentity, model.Password);
if (!result.Succeeded)
return new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState));
await _appDbContext.Customers.AddAsync(new Customer { IdentityId = userIdentity.Id, Location = model.Location });
await _appDbContext.SaveChangesAsync();
return new OkObjectResult("Account created");
}
catch (Exception ex)
{
return BadRequest(ModelState);
}
}