Попробуйте использовать Validator
класс:
using System.ComponentModel.DataAnnotations;
var user = new User { Name = "Sam", Surname = "Smith"};
var errors = new List<ValidationResult>();
if(!Validator.TryValidateObject(user, new ValidationContext(user), errors, true))
{
//now errors are not empty
}
else
{
context.Users.Add(user);
context.SaveChanges();
}