我目前正在使用 .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());
}
您正在将任务(ToListAsync 的结果)映射到失败的 DTO 列表。您需要等待查询,以便获得任务结果,然后映射才能正常工作
var counties = await _context.Counties.ToListAsync();
var mappedCounties = _mapper.Map<List<CountyResponse>>(counties);