'Automapper throwing System.Reflection.AmbiguousMatchException: Ambiguous match found

I have a piece of code that throws exception and I dont quite understand why.

 public  async Task<List<CategoryVm>> Handle(GetCategoriesListQuery request, CancellationToken cancellationToken)
    {
        var categories = (await _categoryRepository.ListAllAsync()).OrderBy(x => x.Name);
      //  var list = categories.ToList();
        return _mapper.Map<List<CategoryVm>>(categories);
    }

enter image description here

I managed to get around problem as below. Would be be nice know why this works.

  public  async Task<List<CategoryVm>> Handle(GetCategoriesListQuery request, CancellationToken cancellationToken)
    {
        var categories = (await _categoryRepository.ListAllAsync()).OrderBy(x => x.Name);
        var list = categories.ToList();
        return _mapper.Map<List<CategoryVm>>(list);
    }

Category and CategoryVm

public class CategoryVm
{
    public Guid CategoryId { get; set; }
    public string Name { get; set; } 
}
public class Category: AuditableEntity
{
    public Guid CategoryId { get; set; }
    public string Name { get; set; }
    public ICollection<Event> Events { get; set; }
}


Solution 1:[1]

In my case, the cause was using .OrderBy() method. My workaround was to use ordering afterwards mapping. If that's important, I'm using Automapper 11.0.0

Solution 2:[2]

In AutoMapper version 11.0.1 (now available) this bug is solved: calling IMapper.Map after an OrderBy caused an AmbiguousMatchException in version 11.0.0.

(A link to this GitHub issue was shared by @Lucian Bargaoanu in a comment already, while the issue was in progress. Thanks for sharing!)

Solution 3:[3]

In my case, I had to add a .ToList() prior to calling ``.Map'' I'm using Automapper 11.0.0

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Tropin Alexey
Solution 2
Solution 3 KornMuffin