如何在不使用自动映射器进行映射的情况下分配新变量

问题描述 投票:0回答:2

我想直接设置PasswordSalt,而不从DTO中可用的任何属性映射它。

public class SaveUserRequestDTOProfile: Profile
{
    public SaveUserRequestDTOProfile()
    {
        var salt = GenerateSalt();

        .ForMember(m => m.Username, map => map.MapFrom(s => s.Username))
        .ForMember(m => m.PasswordSalt, salt); // this doesn't work

    }
}

预先感谢!

c# asp.net-mvc asp.net-core automapper
2个回答
0
投票

例如,您将以与“用户名”相同的方式映射它,仅指定创建的值

public class SaveUserRequestDTOProfile: Profile
{
  public SaveUserRequestDTOProfile()
  {
    var salt = GenerateSalt();

    .ForMember(m => m.Username, map => map.MapFrom(s => s.Username))
    .ForMember(m => m.PasswordSalt, map => map.MapFrom(_ => salt));

  }
}

0
投票

我相当确定您可以在MapFrom方法中指定任何值。并不一定要求该值必须实际上来自源对象:

.ForMember(m => m.PasswordSalt, map => map.MapFrom(s => salt));
© www.soinside.com 2019 - 2024. All rights reserved.