簡體   English   中英

AutoMapper - 如何將對象映射到對象列表

[英]AutoMapper - How to map an object to list of objects

我想使用 AutoMapper 將Person映射到Client列表:

這是我的模型:

public class Person
{
    public Guid Id { get; set;}
    public string Name { get; set;}
    public string Country { get; set;}
    public string PhoneNumber { get; set;}
}

public class Member
{
    public Guid Id { get; set;}
    public string FullName { get; set; }
}

public class Client
{
    public Member User { get; set; }
}

我試着用 AutoMapper 來做,但我做不到:

CreateMap<Person, List<Client>>();

您需要 4 個映射規則:

  1. Person映射到Member

  2. Member映射到Client

  3. Person映射到Client

  4. Person映射到List<Client>

CreateMap<Person, Member>()
    .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name));
                                                                  
CreateMap<Member, Client>()
    .ForMember(dest => dest.User, opt => opt.MapFrom(src => src));
                                                                  
CreateMap<Person, Client>()
    .ConvertUsing((src, dest, ctx) => new Client { User = ctx.Mapper.Map<Member>(src) });
                                                                  
CreateMap<Person, List<Client>>()
    .ConvertUsing((src, dest, ctx) => new List<Client> { ctx.Mapper.Map<Client>(src) });

演示 @.NET Fiddle

您可以使用以下代碼映射它們:

CreateMap<Person, Client>()
    .ForMember(dest => dest.User, opt => opt.MapFrom(src => new Member { Id = src.Id, FullName = src.Name }));
CreateMap<Person, List<Client>>()
    .ConvertUsing(src => src.Select(x => new Client { User = new Member { Id = x.Id, FullName = x.Name } }).ToList());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM