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的更多相关文章

  1. 使用EntityFramework6连接MySql数据库(code first方式)

    demo托管地址:http://git.oschina.net/uustudy/ASP.NET-CodeFirst-MySQL-Demo.git 之前的是db first(地址:http://www. ...

  2. 7.DataAnnotations(数据注解)【Code-First 系列】

    EF Code-First提供了一系列的数据注解的特性,你可以将其应用到你的领域类和属性中,数据注解属性重写了EF默认的约定. System.ComponentModel.DataAnnotation ...

  3. 对System.ComponentModel.DataAnnotations 的学习应用

    摘要 你还在为了验证一个Class对象中很多数据的有效性而写很多If条件判断吗?我也同样遇到这种问题,不过,最近学了一项新的方法,让我不在写很多if条件做判断,通过给属性标注特性来验证数据规则,从此再 ...

  4. [转]在EntityFramework6中执行SQL语句

    本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...

  5. EF框架step by step(7)—Code First DataAnnotations(2)

    上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...

  6. EF框架step by step(7)—Code First DataAnnotations(1)

    Data annotation特性是在.NET 3.5中引进的,给ASP.NET web应用中的类提供了一种添加验证的方式.Code First允许你使用代码来建立实体框架模型,同时允许用Data a ...

  7. 在EntityFramework6中执行SQL语句

    在EntityFramework6中执行SQL语句 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有操作.这一节我来介绍一下如何使用在EF6中执行SQL语 ...

  8. 使用EntityFramework6完成增删查改和事务

    使用EntityFramework6完成增删查改和事务 上一节我们已经学习了如何使用EF连接数据库,并简单演示了一下如何使用EF6对数据库进行操作,这一节我来详细讲解一下. 使用EF对数据库进行操作, ...

  9. EntityFramework6 快速入门教程

    EntityFramework6 快速入门教程 不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今的EF6差别还是比较大.我刚开始弄这个的时候真是绕 ...

随机推荐

  1. 老李谈JVM内存模型

    老李谈JVM内存模型   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨 ...

  2. 老李分享:MySql的insert语句的性能优化方案

    老李分享:MySql的insert语句的性能优化方案   性能优化一直是测试人员比较感兴趣的内容,poptest在培训学员的时候也加大了性能测试调优的方面的内容,而性能优化需要经验的积累,经验的积累依 ...

  3. android.util.Log常用方法

    android.util.Log常用的方法有以下5个: Log.v() Log.d() Log.i() Log.w() 以及 Log.e() .根据首字母分别对应VERBOSE,DEBUG,INFO, ...

  4. css实现超出部分用...代替

    如果是一行的话 css为 white-space: nowrap: 保证文本内容不会自动换行,如果多余的内容会在水平方向撑破单元格. overflow: hidden: 隐藏超出单元格的部分. tex ...

  5. 使用Jersey实现图片服务器与应用服务器分离

         现在模拟一下Jersey从客户端发送图片到服务器.   1.Tomcat准备 (1)解压一个新的Tomcat作为图片服务器,然后修改端口号(有3处).                (2)然 ...

  6. 【one day one linux】grep工具

    grep  筛选功能 学习这些命令采用20/80原则,这样,可以达到使用%20的命令选项,处理80%的情况. #grep 的使用格式 grep [option] pattern file 那么接下来看 ...

  7. 2.Ubuntu16.04安装QT5.8.0

    VSCode编辑器开发CPP:http://www.cnblogs.com/dotnetcrazy/p/6661921.html 下载QT run文件(安装包),一般都是这两个下载的比较多,我这边使用 ...

  8. C#小知识点记录(QQ交流群的一个小问题)Linq提取数据

    请教 这里 LINQ想 找到 最后的 4条 记录 然后放在 这里这个 List Linq查找怎么写呀? 解答:写了一个小例子作为解答. namespace C_Sharp { class Progra ...

  9. JS绑定种类汇总

    这里是<你不知道的JS>中常见的this绑定种类分享: 1)默认绑定: function foo(){ console.log(this.a); } var a = 2; foo(); 解 ...

  10. 【代码学习】GD库中图片缩印

    bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src ...