Как проверить свойство строки с помощью RegularExpressionAttribute, выдав исключение, если проверка не удалась в C#? - PullRequest
0 голосов
/ 03 апреля 2020

Я пишу простое. NET Core 3.1 API-приложение. Я хотел бы проверить MailAddress с помощью C#, встроенного в RegularExpressionAttribute, а затем сохранить мои проверенные объекты в базу данных с помощью EF Core. Вот мой пример кода:

public class UserEntity
{
    [Key]
    public int UserId { get; set; }
    [Required]
    [StringLength(maximumLength: 100, MinimumLength = 3)]
    public string Username { get; set; }
    [Required]
    [Column(TypeName = "varchar(100)")]
    [RegularExpression(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$")]
    public string MailAddress { get; set; }
    [Required]
    [MaxLength(64)]
    public byte[] PasswordHash { get; set; }
}

Я ожидал, что если я собираюсь присвоить регулярное выражение, не соответствующее значению, будет сгенерировано исключение.

var newUser = new UserEntity()
            { MailAddress = signUpData.MailAddress, Username = signUpData.Username, PasswordHash = passwordHash };

Здесь ничего не происходит, Приложение продолжает выполнение, а UserEntity сохраняется в моей базе данных. Я хотел бы, чтобы было выдано исключение, если проверка почты не удалась. Как этого добиться? Должен ли я явно вызывать Regex.Match () вместо использования атрибута, чтобы проверить правильность переданной строки? Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...