How to validate only 7 digit number?
you can use Regex
for that
bool x = Regex.IsMatch(valueToValidate, "^\d{7}$");
Since you're using FluentValidation, you want to use the .Matches validator to perform a regular expression match.
RuleFor(x => x.student_id).Matches("^\d{7}$")....
Another option is to do something like this (if student_id is a number):
RuleFor(x => x.student_id).Must(x => x > 999999 && x < 10000000)...
Or, you could use the GreaterThan and LessThan validators, but the above easier to read. Also note that if a number is something like 0000001 then the above won't work, you'd have to convert it to a string with 7 digits and use the technique below.
if student_id is a string, then something like this:
int i = 0;
RuleFor(x => x.student_id).Length(7,7).Must(x => int.TryParse(x, out i))...