打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Entity Framework DataAnnotations

前言

DataAnnotation 特性由.NET 3.5中引进,给.NET中的类提供了一种添加验证的方式。但是在EF中它又可以对映射关系进行控制,相比较Fluent API使用起来要简单一些。

DataAnnotation特性列举

DataAnnotation由命名空间System.ComponentModel.DataAnnotations提供。下面列举实体模型中常用的DataAnnotation特性:

1.KeyAttribute:对数据库中表的主键的设置

2.RequiredAttribute:对应数据库中字段的数据是否可以为null

3.MaxLengthAttribute:对应数据库中字符串类型字段的最大长度

4.MinLengthAttribute:在数据库中无对应,但在代码中字符串最小长度

5.ConcurrencyCheckAttribute:指定用于开放式并发检查的列的数据类型

6.TimestampAttribute:将列的数据类型指定为行版本

System.ComponentModel.DataAnnotations命名空间中只定义了部分实体验证的特性,在EntityFramework程序集中定义了更多的数据映射特性

7.DatabaseGeneratedAttribute:标记指定实体属性是由数据库生成的,并指定生成策略(None数据库不生成值,Identity当插入行时,数据库生成值,Computed当插入或更新行时,数据库生成值)

8.ColumnAttribute:指定实体属性在数据库中的列名及数据类型

9.TableAttribute:指定实体类对应的数据表名

10.ForeignKeyAttribute:指定导航属性的外键字段

11.NotMappedAttribute:标记指定实体属性在创建数据库中不创建对应字段

12.ComplexTypeAttribute:标记指定实体属性是将一个对象作为另一个对象的属性,映射到数据库中则子对象表现为多个属性字段

对于实体关系对应的数据表关系,无非“0:1,1:1,0:N,1:N,N:N”这几种,可以使用导航属性中的数据类型来表示,0…1端使用单实体类型表 示,N端使ICollection<T>集合类型表示。对于单实体端,默认是可为空的,即为0关系,如果要设置为1关系,要使用 [Required]标签来进行标记。但对于一对一中的关系主体与依赖对象确无法做更细节的控制。

注意:DataAnnotations可以同时在同一个类后者属性上使用多个标记属性,上面的例子中对于每个类或属性只使用了一个单独的标记属性是为了说明起来更加简单;另外声明的例子中同时使用“ConcurrencyCheck”和“TimeStamp”指定了不同的列只是为了演示,一般情况下我们通过其中一种方式即可。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
实体框架 Code First 数据注释
C#中的延时加载
配置使用EF常见的一些问题及解决方案
Mysql数据库入门-基本操作
MongoDB via Dotnet Core数据映射详解
数据库设计指南(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服