Home > database >  AutoMapperMappingException: Missing type map configuration or unsupported mapping IN .NET 6
AutoMapperMappingException: Missing type map configuration or unsupported mapping IN .NET 6

Time:09-19

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;
}

CodePudding user response:

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.

  • Related