如果一个字段 账号,手机,邮箱这些都是唯一的,在类中怎定义呢?
如果一个字段有范围约束,例如: 销售打折(0-1) 星期(1-7)等, 在类中又怎样定义呢?
重写ValidationAttribute IsValid 方法? 这种方法好像只是解决过程的实现, 并没有在真正的源地方进行打进柳钉, 有人教教吗?
有些约束可以使用Attribute实现,有些特殊的实现不了
账号,手机,邮箱这些都是唯一需要插入数据库前查询是都唯一
其他的大部分特殊验证都可以用正则式验证RegularExpression
特性 | 示例 | 说明 |
Compare | [Compare("MyOtherProperty")] | 两个属性必须相同值,比如我们要求用户重复输入两次邮件地址时有用 |
Range | [Range(10, 20)] | 属性值必须在指定的数值范围内,可以使用数值类型的最大最小值比如int.MinValue、int.MaxValue |
RegularExpression | [RegularExpression("pattern")] | 字符串值必须匹配正则表达式,默认大小写敏感,可以使用(?i)修饰符关闭大小写敏感,比如[RegularExpression("(?i)mypattern")] |
Required | [Required] | 属性值必须非空或者不能只是空格,如果允许全空格可以[Required(AllowEmptyStrings = true)] |
StringLength | [StringLength(10)] | 字符串长度不能超过给定的最大长度,也可以指定最小长度:[StringLength(10, MinimumLength=2)] |
谢谢, 这种code first, 数据库只是做一个存储管理, 一些必须约束都是在代码完成? 这与数据库设计是否有冲突。 例如一个字段只能是0-1的小数, 前一批人开发过, 换一批人接手, 可能不知道这个小细节, 传了1.1的数进来就错了, 如果数据据本身有约束的, 就可以防止这种错误
第一个我用脚本实现的
第二个么 可以用枚举
第一个在类中可以使用[Unique]关键字约束
第二个可以加最大最小值的范围,或者是自己自定义类型