[SOLVED] AutoMapperMappingException: Missing type map configuration or unsupported mapping IN .NET 6

Issue

This Content is from Stack Overflow. Question asked by fardad

I have this entity:

public class Genres
{
    public int Id { get; set; }

    [Required(ErrorMessage ="the field {0} is required")]
    [StringLength(50)]
    [FirstLetterUpperCase]
    public string Name { get; set; }
}

And this DTO or model:

public class GenresDTO
{
    public int Id { get; set; }
    public string Name { get; set; }
}

I have initiated my mapper like this:

public class AutoMapperClass : Profile
{
    public AutoMapperClass()
    {
        generateMapper();
    }

    private void generateMapper() 
    {
        CreateMap<GenresDTO, Genres>().ReverseMap();
        CreateMap<GenresCreationDTO, Genres>();
    }
}

I have also written this part of code in my program.cs :

builder.Services.AddAutoMapper(typeof(IStartup));

I am using .NET 6 and Visual Studio, and when I run my project, I get an error that is mentioned in the title and its related to this section :

public async Task<ActionResult<List<GenresDTO>>> Get() 
{
    var genres  =  await dbContext.Genres.ToListAsync();
    return mapper.Map<List<GenresDTO>>(genres);
}

which is in my Controller file, and I initiated the mapper like this :

private readonly ILogger<GenresController> ilogger;
private readonly ApplicationDBContext dbContext;
private readonly IMapper mapper;

public GenresController(ILogger<GenresController> ilogger,
            ApplicationDBContext dbContext , IMapper mapper) 
{
    this.ilogger = ilogger;
    this.dbContext = dbContext;
    this.mapper = mapper;
}



Solution

Should be probably typeof(Program) in registration (assuming that you are using .Net6 where we have only Program.cs)

builder.Services.AddAutoMapper(typeof(Program))

If you have multiple projects in solution,then value used there should be a file in the assembly in which the mapping configuration resides.


This Question was asked in StackOverflow by fardad and Answered by WisdomSeeker It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?