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

如何使用AutoMapper将Person类映射到Company类?

使用AutoMapper将Person类映射到Company类的解决方案

由于Person和Company的结构差异较大(单个对象 vs 包含成员列表的对象),AutoMapper无法自动完成映射,需要显式定义自定义映射规则,具体步骤如下:

1. 安装AutoMapper包

首先确保已安装必要的NuGet包:

Install-Package AutoMapper
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection # 若使用.NET依赖注入

2. 创建映射配置文件

定义一个继承自Profile的配置类,明确字段的映射关系:

public class PersonToCompanyProfile : Profile
{
    public PersonToCompanyProfile()
    {
        // 配置Person到Company的映射
        CreateMap<Person, Company>()
            // 将Person的Name映射到Company的Name
            .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name))
            // 将单个Person转换为Member并包装成列表,存入Company的Members
            .ForMember(dest => dest.Members, opt => opt.MapFrom(src => new List<Member>
            {
                new Member { Id = src.Id, FullName = src.Name }
            }));

        // 可选:单独配置Person到Member的映射,让逻辑更清晰
        CreateMap<Person, Member>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id))
            .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));
        
        // 若使用上述Person→Member映射,Company的Members可改为:
        // .ForMember(dest => dest.Members, opt => opt.ResolveUsing(src => new List<Member> { Map<Member>(src) }))
    }
}

3. 初始化Mapper实例

方式一:直接初始化(非依赖注入场景)

var config = new MapperConfiguration(cfg =>
{
    cfg.AddProfile<PersonToCompanyProfile>();
});
var mapper = config.CreateMapper();

方式二:依赖注入注册(ASP.NET Core等场景)

在Program.cs中注册服务:

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

4. 执行映射

// 示例Person对象
var person = new Person
{
    Id = Guid.NewGuid(),
    Name = "John Doe",
    Country = "USA",
    PhoneNumber = "123-456-7890"
};

// 映射为Company对象
var company = mapper.Map<Company>(person);

关键说明

  • 核心是处理Company.Members的映射:因为Members是列表类型,需要手动将单个Person转换为Member并包装成列表。
  • 如果需要批量将多个Person映射为Company的Members,只需调整映射逻辑,将IEnumerable<Person>作为源即可。

内容的提问来源于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:50:28