无法将方法组转换为 func<long,bool>

cannot convert method group to func<long,bool>

我正在尝试使用 fluentvalidation 来验证 pin 以确保用户类型与现有 pin 匹配。 AppDbContext 是从 dbcontext (Entity Framework) 继承的上下文 class。调用 isOldPin 方法时出现此语法错误。如果 PinCodeOld 数据类型是字符串,则不会出现此错误。但是如果 PinCodeOld 数据类型很长,就会出现这个错误。

 public class ChangePinValidator : AbstractValidator<VMPinChange>
{
    private readonly AppDbContext db = new AppDbContext();
    public ChangePinValidator()
    {
        RuleFor(b => b.PinCodeOld).Must(isOldPin).WithMessage("Invalid current pin code.");
        RuleFor(b => b.PinCodeNew).Equal(b => b.PinCodeConfirmation)
            .WithMessage("New pin code is not same with confirmed new pin code.");
    }

    private bool isOldPin(string _currentPin)
    {
        bool isMatch = db.BankAccounts.Any(b => b.PinCode.Equals(_currentPin));

        return isMatch;
    }
}

问题是这样的:

RuleFor(b => b.PinCodeOld).Must(isOldPin)

如果 PinCodeOld 是一个 long,那么 Must 方法将期望一个方法将 long 值作为输入,但您的方法将 string.如果你需要它是 long 那么你还需要将 isOldPin 更改为 long.