Usamos Data Annotation para validação de dados dos nossos Models
, além disso, definem regras de requisitos de bancos de dados e outras configurações de mapeamento diretamente no código do modelo. Ao colocar os decoradores antes do atributo desejado, é adicionado um comportamento que permite o .NET runtime executar esses processamentos adicionais que possibilitam a validação dos campos, propriedades e classes.
public class Order
{
[Key]
public int OrderID { get; set; }
[Required(ErrorMessage = "CustomerName is required")]
[StringLength(100, ErrorMessage = "CustomerName cannot be longer than 100 characters")]
public string CustomerName { get; set; }
[RegularExpression(@"^\\d+.?\\d{0,2}$", ErrorMessage = "Invalid total")]
[Range(1, 500, ErrorMessage = "Total must be between 1 and 500")]
public decimal Total { get; set; }
}
[Key]
é colocada na propriedade OrderID
, que marca como identificador único[Required]
e [StringLength]
colocada na propriedade CustomerName
garante que o campo não fique vazio e que não ultrapasse 100 caracteres.[RegualarExpression]
e [Range]
no campo Total
força uma validação específica de númerosVantagens
Desvantagens
model
) difícil de manter. Todas as regras de validação e mapeamento são embutidas no modelo, o que pode dificultar a manutenção e evolução do código.