AutoMapper unflattening相同类型的复杂对象

时间:2015-01-20 11:13:47

标签: c# automapper

我在映射以下复杂类型时遇到问题:

RequestDTO
{
    int OldUserId;
    string OldUsername;
    int NewUserId;
    string NewUsername;
}

Request
{
    User OldUser;
    User NewUser;
}

User
{
    int UserId;
    string Username;
}

Request映射/展平为RequestDTO非常简单。但是如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

假设您将类和字段设为公共,下面的示例显示了如何在AutoMapper中处理此问题。你需要告诉它如何从dto重构你的复杂类型。

        Mapper.CreateMap<RequestDTO, Request>()
            .ForMember(request => request.OldUser,
                mappingOption =>
                    mappingOption.MapFrom(dto => new User {UserId = dto.OldUserId, Username = dto.OldUsername}))
            .ForMember(request => request.NewUser,
                opt => opt.MapFrom(dto => new User {UserId = dto.NewUserId, Username = dto.NewUsername}));