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. 老李分享:持续集成学好jenkins之内置命令

    老李分享:持续集成学好jenkins之内置命令   Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR& ...

  2. 性能测试培训:sql server性能测试分析局部变量的性能影响

    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培训中,为了提高学员性能优化的经验,加入了 ...

  3. C#中string和byte[]相互转换问题解决

    本来想讲string转换为byte数组,通过在VS上打 ‘str. “来找,结果半天没发现跳出来的函数中有想要的,哭瞎 /(ㄒoㄒ)/~~ 这回将两种情况都记下来了.... string ---> ...

  4. 职责链模式(Chain of Responsibility)的Java实现

    职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它 ...

  5. FunDA:一个开源的函数式数据处理工具库,也是Slick的补充

    如果你是一个Slick用户,或者你是一个数据库编程人员正在尝试进入函数式编程模式,那么FunDA可能会帮到你. 目前市面上FRM(Functional Relational Mapper),即函数式的 ...

  6. Executor以及线程池

    在应用程序中,总是会出现大量的任务,包括相同类型的和不同类型的.要快速处理这些任务,常见方法就是利用多线程,但是也不可能为每个任务都创建一个线程,这样内存也不够,并且线程的创建销毁开销很大.最好是少量 ...

  7. H5学习的第三周

    上周,我们结束了京东站的制作,本周我们开始了手机站和响应式网站的学习,并仿制了一个手机端界面和一个响应式界面,在完成这两个网站的过程中我遇到了许多问题,也了解了它们的解决方法,接下来我讲详细介绍本周我 ...

  8. VS Code 的常用快捷键

    VS Code 的常用快捷键和插件 一.vs code 的常用快捷键 1.注释: a) 单行注释:[ctrl+k,ctrl+c] 或 ctrl+/ b) 取消单行注释:[ctrl+k,ctrl+u] ...

  9. .NET Core 2.0及.NET Standard 2.0

    .NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q ...

  10. python str.format()

    python中的字符串格式函数str.format(): #使用str.format()函数 #使用'{}'占位符 print('I\'m {},{}'.format('Hongten','Welco ...