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

C#中Controller模型类映射领域模型类报错求助

问题描述(中文翻译)

我有如下Controller层模型类:

public class Request 
{
    public Account Account { get; set; }
}

public class Account
{
    public string Number { get; set; }
    public List<Holder> Holder { get; set; }
}

public class Holder
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

领域层模型类如下:

public class AccountRequest
{
    public string Number { get; set; }
    public List<Holder> Holder { get; set; }
}

public class Holder
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

我在AccountMapper里做了如下映射配置:

CreateMap<Models.Request, AccountRequest>()
        .ForMember(dest => dest.Holder, opt => opt.MapFrom(src => src.Account.Holder));

结果报错:

Missing type map configuration or unsupported mapping.
Mapping types:
Holder -> Holder
Controllers.v2.Models.Holder -> Contracts.Domain.Holder

请求帮忙解决这个模型或映射器的问题,我用List是因为请求负载格式是这样的,有没有其他实现方式?

"Holder": [
{
"FirstName": "abc",
"LastName": "xyz"
},
{
"FirstName": "tqq",
"LastName": "kdi"
}
]

问题原因

报错核心是两个Holder类分属不同命名空间(Controllers.v2.Models 和 Contracts.Domain),哪怕属性完全一致,AutoMapper也不会自动识别并映射它们,必须显式配置这两个类的映射规则。另外当前映射还漏掉了Number字段的映射逻辑。

解决步骤

  1. 添加Holder类的映射配置
    在AccountMapper中,新增两个Holder类的映射规则(可根据实际命名空间简化):

    // 若已通过using引入对应命名空间,可简化为CreateMap<Models.Holder, Domain.Holder>()
    CreateMap<Controllers.v2.Models.Holder, Contracts.Domain.Holder>();
    
  2. 完善Request到AccountRequest的完整映射
    补上Number字段的映射逻辑,最终配置如下:

    CreateMap<Models.Request, AccountRequest>()
        .ForMember(dest => dest.Number, opt => opt.MapFrom(src => src.Account.Number))
        .ForMember(dest => dest.Holder, opt => opt.MapFrom(src => src.Account.Holder));
    CreateMap<Controllers.v2.Models.Holder, Contracts.Domain.Holder>();
    
  3. 关于List的使用
    你的请求负载是数组格式,用List<Holder>完全适配,无需更换类型。如果追求灵活性,也可以用IEnumerable<Holder>或ICollection<Holder>,AutoMapper对这些集合类型的映射都支持,效果一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 23:58:34