Tengo un fragmento de código que arroja una excepción y no entiendo muy bien por qué.
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); }Me las arreglé para solucionar el problema de la siguiente manera. Sería bueno saber por qué esto funciona.
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); }Categoría y CategoríaVm
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; } }En mi caso, la causa fue usar el método .OrderBy() . Mi solución fue usar el orden después del mapeo. Si eso es importante, estoy usando Automapper 11.0.0
En la versión 11.0.1 de AutoMapper (ahora disponible), este error está solucionado: llamar a IMapper.Map después de que OrderBy provocó una AmbiguousMatchException en la versión 11.0.0.
(@Lucian Bargaoanu ya compartió un enlace a este problema de GitHub en un comentario, mientras el problema estaba en curso. ¡Gracias por compartirlo!)