.NET 6中POST请求触发AutoMapper映射错误求助
.NET 6 AutoMapper映射失败:CardCreateDto到Card无映射配置
问题现象
搭建交易卡牌存储基础API时,测试POST请求触发AutoMapper错误:
缺少类型映射配置或不支持该映射。映射类型: CardCreateDto -> Card CardCreateDto -> Card
报错代码位于Program.cs:
var cardModel = mapper.Map<Card>(cardCreateDto);
根因分析
问题核心是CardProfile映射配置类的规则未定义在构造函数中,导致AutoMapper启动时无法扫描并加载该映射规则,因此无法完成CardCreateDto到Card的转换。
修复方案
将映射配置代码移至CardProfile的构造函数内,确保AutoMapper初始化时能识别该规则:
错误示例(原代码)
public class CardProfile : Profile { // 非构造函数中的配置,AutoMapper无法加载 public void Configure() { CreateMap<CardCreateDto, Card>(); } }
正确示例
public class CardProfile : Profile { // 构造函数内定义映射规则,AutoMapper会自动扫描加载 public CardProfile() { CreateMap<CardCreateDto, Card>(); } }
同时确认Program.cs中已正确注册AutoMapper:
builder.Services.AddAutoMapper(typeof(CardProfile));
内容的提问来源于stack exchange,提问作者MarkHughes88
相关产品推荐
相关产品推荐

