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的更多相关文章
- 使用EntityFramework6连接MySql数据库(code first方式)
demo托管地址:http://git.oschina.net/uustudy/ASP.NET-CodeFirst-MySQL-Demo.git 之前的是db first(地址:http://www. ...
- 7.DataAnnotations(数据注解)【Code-First 系列】
EF Code-First提供了一系列的数据注解的特性,你可以将其应用到你的领域类和属性中,数据注解属性重写了EF默认的约定. System.ComponentModel.DataAnnotation ...
- 对System.ComponentModel.DataAnnotations 的学习应用
摘要 你还在为了验证一个Class对象中很多数据的有效性而写很多If条件判断吗?我也同样遇到这种问题,不过,最近学了一项新的方法,让我不在写很多if条件做判断,通过给属性标注特性来验证数据规则,从此再 ...
- [转]在EntityFramework6中执行SQL语句
本文转自:http://www.cnblogs.com/wujingtao/p/5412329.html 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有 ...
- EF框架step by step(7)—Code First DataAnnotations(2)
上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...
- EF框架step by step(7)—Code First DataAnnotations(1)
Data annotation特性是在.NET 3.5中引进的,给ASP.NET web应用中的类提供了一种添加验证的方式.Code First允许你使用代码来建立实体框架模型,同时允许用Data a ...
- 在EntityFramework6中执行SQL语句
在EntityFramework6中执行SQL语句 在上一节中我介绍了如何使用EF6对数据库实现CRDU以及事务,我们没有写一句SQL就完成了所有操作.这一节我来介绍一下如何使用在EF6中执行SQL语 ...
- 使用EntityFramework6完成增删查改和事务
使用EntityFramework6完成增删查改和事务 上一节我们已经学习了如何使用EF连接数据库,并简单演示了一下如何使用EF6对数据库进行操作,这一节我来详细讲解一下. 使用EF对数据库进行操作, ...
- EntityFramework6 快速入门教程
EntityFramework6 快速入门教程 不得不说EF在国内实在是太小众,相关的技术文章真实屈指可数,而且很多文章都很旧了,里面使用的版本跟如今的EF6差别还是比较大.我刚开始弄这个的时候真是绕 ...
随机推荐
- POPTEST培训:web自动化测试之DOM
POPTEST培训:web自动化测试之DOM poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq ...
- EDP转接IC NCS8805:RGB/LVDS转EDP芯片,带Scaler
RGB/LVDS-to-eDP Converter w/ Scaler1 FeaturesEmbedded-DisplayPort (eDP) Output1/2/4-lane eDP @ 1.62/ ...
- 以正确的姿势实现一棵JavaScript菜单树
菜单树是常见的前端特效, 一般长下面这样 还有各种形态的变种, 有长这样的 也有长这样的 尽管这些菜单的相貌都不尽相同, 在功能实现的本质上却都是相同的.实现程序的大致流程如下 读取服务器端的菜单数据 ...
- 我的iOS-App
1.PocketConfidential(密保箱) 简介 保存账号密码等敏感信息. 应用技术: sqlite.sqlcipher加密.AES数据加密.GCD https://itunes.apple. ...
- MYSQL数据库导入大数据量sql文件失败的解决方案
1.在讨论这个问题之前首先介绍一下什么是"大数据量sql文件". 导出sql文件.选择数据库-----右击选择"转储SQL文件"-----选择"结构和 ...
- 关于sql语句between and的边界问题
BETWEEN 操作符 操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围.这些值可以是数值.文本或者日期. SQL BETWEEN 语法 SELECT column_name(s ...
- kafka入门
1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件 ...
- LED操作
灯上拉 GPIO_InitTypeDef GPIO_InitStruct; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); GPIO_InitS ...
- JavaScript中screen对象的两个属性
Screen 对象 Screen 对象包含有关客户端显示屏幕的信息. 这里说一下今天用到的两个属性:availHeigth,availWidth avaiHeigth返回显示屏幕的高度 (除 Wind ...
- ArrayList 冷门方法
以下代码片都是 jdk1.8 ArrayList中的官方代码 /** * Constructs a list containing the elements of the specified * co ...