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. js遍历(获取)ul中的li

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. 关于html5调用手机相机(原创)

    很久没写随笔了 从ios6开始,webview支持html <input type="file">标签,用来调取手机的相册和相机,但是没有权限提示,不知道是不是我写的有 ...

  3. Springboot在IDEA中执行,开启热部署

    仅适用IDEA中,eclipse中不需要设置 一.开启idea自动make功能 1 - Enable Automake from the compiler PRESS: CTRL + SHIFT + ...

  4. sqlldr用法

    SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中.SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PAR ...

  5. Java与面向对象之随感(2)

    我们知道Java语言的一大特性就是相比于c语言和c++语言,其更加安全.那么Java安全性的一个重要保证就是它取消了指针,并且坚决反对数组的出界(c++对当数组超出上限但是还进行读写操作时允许的!), ...

  6. Linux 系统管理04--账号管理

    Linux系统管理04--账号管理 一.用户账号管理 1.用户账号概述 (1)用户账号的常见分类: 1>超级用户:root uid=0 gid=0 权限最大. 2>普通用户:uid> ...

  7. HTML5常用标签总结

    一.常用的标签 <h1>~<h6> 表示是一个标题 <p> 段落标签 <hr/> 水平线标签 <br/> 换行标签 <sub> ...

  8. 2017河工大校赛补题CGH and 赛后小结

    网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直 ...

  9. SELECT中(非常)常用的子查询操作

    MySQL中的子查询 是在MySQL中经常使用到的一个操作,不仅仅是用在DQL语句中,在DDL语句.DML语句中也都会常用到子查询. 子查询的定义: 子查询是将一个查询语句嵌套在另一个查询语句中: 在 ...

  10. html基础认识,高手别看

    HTML5是一种用于在万维网上构建和呈现内容的符号言语.它是HTML规范的第五和当时版别.它是由万维网联盟(W3C)在十月发布的2014 [ 2 ] [ 4 ]和最新的多媒体支持进步言语,一起坚持它简 ...