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

How to assign a new variable without mapping using Automapper

我想直接设置 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

    }
}

提前致谢!

您可以按照与用户名相同的方式映射它,只是您需要指定您创建的值,例如

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

  }
}

您可以在 MapFrom 方法中指定任何值。不要求值必须实际来自源对象:

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