I am trying to use AutoMapper in my Asp.NET 5 Core project.
In the Startup file of my project, I added the following
Type[] types = all scannable types...
services.AddAutoMapper((serviceProvider, MapperExpression) =>
{
// Not sure if this is needed
MapperExpression.ConstructServicesUsing(t => serviceProvider);
// Manually add the mapping without using a profile for now..
MapperExpression.CreateMap(typeof(User), typeof(UserViewModel));
}, types);
From the above, I am expected to be able to map a UserViewModel to User. But instead, I am getting the following error
AutoMapper.AutoMapperMappingException: Missing type map configuration or unsupported mapping.
Mapping types: Object -> User System.Object - User
Here is how I am calling AutoMapper from a controller
[ApiController]
public class UsersController : ControllerBase
{
private readonly IMapper _mapper;
public UsersController(IMapper mapper)
{
_mapper = mapper;
}
public async Task<ActionResult<DisplayUserViewModel>> Create([FromBody] UserViewModel viewModel)
{
User model = _mapper.Map<User>(viewModel);
//...
}
}
Here are my models
public class UserViewModel
{
[Required]
public string Password { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string FirstName { get; set; }
public string MiddleName { get; set; }
[Required]
public string LastName { get; set; }
}
public class User : IdentityUser<int>
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
}
How can I correctly add AutoMapper service to my .Net 5 core project?