fardad
fardad

Reputation: 29

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

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

Upvotes: 0

Views: 232

Answers (1)

WisdomSeeker
WisdomSeeker

Reputation: 934

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.

Upvotes: 2

Related Questions