【EF Core】常用的 DataAnnotations 数据标签
DataAnnotations
验证
常用的 DataAnnotations
Required
:属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)]
DisplayName
:显示名 – 定义表单字段的提示名称StringLength
:字符串长度不能超过给定的最大长度,也可以指定最小长度:[StringLength(10, MinimumLength=2)]
Range
:范围 – 数字的可输入范围[Range(10, 20)]
,属性值必须在指定的数值范围内,可以使用数值类型的最大最小值比如int.MinValue、int.MaxValue
Bind
:绑定 – 列出在将请求参数绑定到模型的时候,包含和不包含的字段ScaffoldColumn
:支架列 - 在编辑表单的时候,需要隐藏起来的的字符[ScaffoldColumn(true|false)]
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; } }
RegularExpression
: 正则表达式匹配,字符串值必须匹配正则表达式,默认大小写敏感,可以使用(?i)修饰符关闭大小写敏感,比如[RegularExpression("(?i)mypattern")]
DataType
:在前端显示的文本框类型Remote
:服务端验证[Editable(false)] //放在主键上显示不可修改
编程是个人爱好