Automapper:缺少类型映射配置.NET Web API

问题描述 投票:0回答:1

我目前正在使用 .NET Web API 来获取基于国家/地区的县列表。 在尝试获取县时,我遇到了异常:

“Automapper:缺少类型映射配置或不支持的映射”

我的领域类别是:

 public class County
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string CountryId { get; set; }

        public virtual Country Country { get; set; }
        public virtual IList<City> City { get; set; }
    }

我的DTO是

 public class CountyResponse
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string CountryId { get; set; }
    }

映射配置文件:

public class CountyProfile : Profile
    {
        public CountyProfile()
        {
            CreateMap<CountyResponse, County>().ReverseMap();
        }
    }

我的服务类 GetAlLMethod:

 public async Task<Result<List<CountyResponse>>> GetAllAsync()
        {
            var counties = _context.Counties.ToListAsync();
            var mappedCounties = _mapper.Map<List<CountyResponse>>(counties);
            return await Result<List<CountyResponse>>.SuccessAsync(mappedCounties);
        }

构建好的,我还映射了完全相同的国家/地区域(1:1)。 然而,其中一个有效,而这个,当尝试访问获取端点时,我收到此错误。 知道这里出了什么问题吗? (服务已注册 - 我正在使用以下内容来注入它们:

 public static void AddInfrastructureMappings(this IServiceCollection services)
        {
            services.AddAutoMapper(Assembly.GetExecutingAssembly());
        }
c# .net mapping automapper
1个回答
2
投票

您正在将任务(ToListAsync 的结果)映射到失败的 DTO 列表。您需要等待查询,以便获得任务结果,然后映射才能正常工作

        var counties = await _context.Counties.ToListAsync();
        var mappedCounties = _mapper.Map<List<CountyResponse>>(counties);
© www.soinside.com 2019 - 2024. All rights reserved.