【EF Core】常用的 DataAnnotations 数据标签

DataAnnotations验证

常用的 DataAnnotations

  1. Required :属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)]
  2. DisplayName :显示名 – 定义表单字段的提示名称
  3. StringLength :字符串长度不能超过给定的最大长度,也可以指定最小长度:[StringLength(10, MinimumLength=2)]
  4. Range :范围 – 数字的可输入范围[Range(10, 20)] ,属性值必须在指定的数值范围内,可以使用数值类型的最大最小值比如int.MinValue、int.MaxValue
  5. Bind :绑定 – 列出在将请求参数绑定到模型的时候,包含和不包含的字段
  6. ScaffoldColumn :支架列 - 在编辑表单的时候,需要隐藏起来的的字符[ScaffoldColumn(true|false)]
  7. Compare: 比较 - 与制定的字段值进行比较 具体见代码 [Compare(“MyOtherProperty”)]两个属性必须相同值,比如我们要求用户重复输入两次邮件地址时有用,Compare 的isValid(property,context) 方法是要求传入上下文,因此 用 Validator验证,只能放在实体类中,不能放在实体类的元数据中(MetadataType)
     [MetadataType(typeof(UserInfo_MateData))]
        [Table("UserInfos")]
        public sealed partial class UserInfo
        {
            [Column("Password")]
            public string Password { get; set; }
    
            //Compare isValid(property,context) 方法是要求传入上下文,因此放在这个位置用 Validator验证
            [Required]
            [NotMapped]
           [Compare("Password", ErrorMessage ="两次密码不一样")]
            public string ConfirmPassword { get; set; }
    }

     

        internal class UserInfo_MateData
        {
            [Required(ErrorMessage = "不能为空")]
            public string Password { get; set; }
    
            [Required(ErrorMessage = "不能为空")]
            [NotMapped]
    //[Compare("Password", ErrorMessage ="两次密码不一样")]不能放在这边
    
            public string ConfirmPassword { get; set; }
    }

     

  8. RegularExpression: 正则表达式匹配,字符串值必须匹配正则表达式,默认大小写敏感,可以使用(?i)修饰符关闭大小写敏感,比如[RegularExpression("(?i)mypattern")]
  9. DataType :在前端显示的文本框类型
  10. Remote :服务端验证
  11. [Editable(false)] //放在主键上显示不可修改
posted @ 2022-11-13 18:14  小林野夫  阅读(141)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/