AutoMapper:如何映射非常复杂的对象

本文关键字:非常 复杂 对象 映射 何映射 AutoMapper | 更新日期: 2023-09-27 18:18:12

我有一个Chat对象与Users字段。它是User对象的数组(IQueryable)。

每个User对象都有Name, E-mail等字段

我怎么能映射这个Chat对象的方式,ChatDTO对象将有字段Users作为一个字符串可用?我希望字符串只包含用逗号分隔的用户名。

也就是说,我如何将一个对象数组转换为一个字符串?

AutoMapper:如何映射非常复杂的对象

应该看起来像这样:

Mapper.CreateMap<Chat, ChatDTO>()
    .ForMember(
        dest => dest.Users, 
        opt => opt.MapFrom(
            src => string.Join(",", src.Users.Select(u => u.Name))));

假设以下类:

public class Chat
{
    public IQueryable<User> Users { get; set; }
}
public class User
{
    public string Name { get; set; }
    public string Email { get; set; }
}
public class ChatDTO
{
    public string Users { get; set; }
}