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

如何使用AutoMapper将Person对象映射为Client对象列表?

解决AutoMapper将Person映射为Client列表的问题

问题原因

直接创建Person到List<Client>的映射无法生效,因为AutoMapper默认没有内置单个对象到集合类型的转换规则,必须明确定义转换逻辑。

解决方案

方案1:自定义集合类型转换器

直接为Person到List<Client>的映射添加转换逻辑,明确告诉AutoMapper如何生成列表:

CreateMap<Person, List<Client>>()
    .ConvertUsing(src => new List<Client>
    {
        new Client
        {
            User = new Member
            {
                Id = src.Id,
                FullName = src.Name
            }
        }
    });

方案2:先定义单个对象映射,再构建列表

这种方式更灵活,适合后续可能扩展的场景:

  1. 先定义Person到Client的映射:
CreateMap<Person, Client>()
    .ForMember(dest => dest.User, opt => opt.MapFrom(src => new Member
    {
        Id = src.Id,
        FullName = src.Name
    }));
  1. 转换时手动将单个Client包装为列表:
Person person = GetPerson(); // 你的Person对象
List<Client> clientList = new List<Client> { _mapper.Map<Client>(person) };

说明

两种方案都能实现需求,方案2的优势在于如果后续需要单独转换Person到Client,可以直接复用已定义的映射规则,无需重复编写转换逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:55:20