You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6中用AutoMapper编写[HttpGet]更新方法遇映射异常求助

.NET Core 6中AutoMapper映射异常排查与解决

问题场景

AutoMapper配置代码:

CreateMap<Product, UpdateProductViewModel>().ReverseMap().ForMember(x => x.Categories, opt => opt.MapFrom(src => src.Categories.Select(x => x.Text.ToString()).ToList()));

抛出异常的HttpGet方法:

[HttpGet]
public IActionResult UpdateProduct(int id)
{
    var product = _service.GetProductById(id);
    var mappedProduct = _mapper.Map<UpdateProductViewModel>(product);
    return View(mappedProduct);
}

触发的异常信息:

AutoMapper.AutoMapperMappingException
HResult=0x80131500
Message=Error mapping types.
Source=
StackTrace:

Inner Exception 1:
AutoMapperMappingException: Missing type map configuration or unsupported mapping.

错误原因

你把ForMember配置放在了ReverseMap()之后,这会导致该配置仅作用于UpdateProductViewModel → Product的反向映射,而当前业务需要的是Product → UpdateProductViewModel的正向映射,正向映射中Categories字段没有对应的转换规则,因此抛出映射异常。

修复方案

调整AutoMapper配置,将ForMember配置放在正向映射定义中,再调用ReverseMap():

CreateMap<Product, UpdateProductViewModel>()
    .ForMember(dest => dest.Categories, opt => opt.MapFrom(src => src.Categories.Select(x => x.Text.ToString()).ToList()))
    .ReverseMap();

同时需确认AutoMapper已正确注册到依赖注入容器,在Program.cs中添加:

builder.Services.AddAutoMapper(typeof(YourMappingProfileClass));

(将YourMappingProfileClass替换为你的AutoMapper配置类名称)

验证步骤

  1. 保存修改后的映射配置
  2. 重启应用程序
  3. 再次触发编辑更新操作,检查是否正常完成映射

内容的提问来源于stack exchange,提问作者Siphamandla Zolakhe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:25:26