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

时间:2014-08-15 12:57:51

标签: c# automapper

我有一个Chat字段,其中包含Users字段。它是IQueryable个对象的数组(User)。

每个User对象都有NameE-mail等字段。

如何以Chat对象将字段ChatDTO作为字符串提供的方式映射此Users对象?我希望字符串只是用逗号分隔的用户名。

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

1 个答案:

答案 0 :(得分:3)

应该是这样的:

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; }
}