首页 > 代码库 > EntityFramework6.X之DataAnnotations

EntityFramework6.X之DataAnnotations

DataAnnotations

在web开发中不仅在客户端需要执行验证逻辑,会对会对用户向表单中输入的数据给出一个即时反馈;且在服务器端也需验证逻辑,因为来自网络的信息都是不能信任的。在MVC中通常是采用数据注解的特性来解决验证逻辑,大部分主要来自于System.ComponentModel.DataAnnotations命名空间下的特性,他们提供服务端验证的功能,当在模型上使用这些特性时,框架也支持客户端验证

1)      数据注解特性都含有ErrorMessage属性用来自定义错误提示

2)      数据注解特性都含有ErrorMessageType属性和ErrorMessageResourceName属性来定义国际化的错误信息

System.ComponentModel.DataAnnotations Attributes:

Attribute

Description

 

Key

标识一个属性为数据库表中的主键约束

 

Timestamp

标识列为非空数据列的时间戳

 

ConcurrencyCheck

标记一个或多个属性在数据库中删除或编辑时进行并发检查

 

Required

当属性NULL或空时,Required特性将会引发一个验证错误,标识属性是必须的,它既传递客户端的验证逻辑,即使客户端浏览器中没有设置允许javaScript执行权限,验证逻辑也会在服务器端捕获到一个空名属性

 

MinLength

MaxLength

指定属性中允许的数组或字符串数据的最大长度/最小长度

 

StringLength

指定允许的最小和最大长度

 

Display

为模型属性设置友好的显示名称,提供一个通用特性,指定本地化字符串

 

DisplayColumn

将所引用的表中显示的列指定为外键列

 

DisplayFormat

处理属性的各种格式化选项,当属性包含空值时,可提供可选的显示文本,也可为包含标记的属性关闭HTML编码,为运行时指定一个应用属性值的格式化字符串

 

Range

指定数值类型值得最小值和最大值

 

RegularExpression

正则表达式的验证功能

 

ScaffoldColumn

隐藏HTML辅助方法渲染的一些属性

 

Compare

确定模型对象的两个属性拥有相同的值,当需要重复判断可用

 

DataType

为运行时提供关于属性的特定用途信息

 

EmailAddress

 

 

EnumDataType

使.net枚举能够映射到数据列

 

Phone

指定使用电话号码的正则表达式数据值是一个格式正确的电话号码

 

CreditCard

表示信用卡

 

System.ComponentModel.DataAnnotations.Schema.Attributes:

1)      Table: 指定实体类对应的数据库表的名称

 技术分享

技术分享

 

2)      Column: 指定要映射到数据库中的列的名称和数据类型

 技术分享

技术分享

 

3)      Index: 指定该列为索引列

4)      ForeignKey: 指定属性为导航属性的外键约束

 技术分享

技术分享

 

5)      NotMapped: 指定该属性列不映射到数据库中

 技术分享

技术分享

 

6)      DatabaseGenerated: 指定属性映射到数据库中通过计算获得值

7)      InverseProperty: 逆向属性,当在两个类之间有多重关系的时候

 技术分享

技术分享

 

8)      ComplexType: 标识该类为复杂类型

EntityFramework6.X之DataAnnotations