无法将方法组转换为 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
.
我正在尝试使用 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
.