MaxLength 和 MinLength 属性

[MaxLength(int)] 属性可以应用于域类的字符串或数组类型属性。实体框架将列的大小设置为指定的值。

using System.ComponentModel.DataAnnotations;

public class Person
{
    public int PersonID { get; set; }
    
    [MinLength(3), MaxLength(100)]
    public string PersonName { get; set; }    
}

生成的列具有指定的列长度:

StackOverflow 文档

[MinLength(int)] 属性是验证属性,它不影响数据库结构。如果我们尝试插入/更新 PersonName 长度小于 3 个字符的 Person,则此提交将失败。我们将得到一个我们需要处理的 DbUpdateConcurrencyException

using (var db = new ApplicationDbContext())
{                    
     db.Staff.Add(new Person() { PersonName = "ng" });
     try
     {
          db.SaveChanges();
     }
     catch (DbEntityValidationException ex)
     {
          //ErrorMessage = "The field PersonName must be a string or array type with a minimum length of '3'."
     }
}

二者 [的 MaxLength][MINLENGTH] 属性也可以用 asp.net-MVC 作为验证属性使用。