EF CodeFirst 数据注解特性详解

发布时间 2023-12-07 17:13:01作者: jin_jun_wang

数据注解特性是.NET特性,可以在EF或者EF Core中,应用于实体类上或者属性上进行生成数据表,并对表名、字段类型、长度、主键、是否为空、外键等进行设置。

1、命名空间

在EF 6和EF Core中,数据注解特性包含在System.ComponentModel.DataAnnotations命名空间和System.ComponentModel.DataAnnotations.Schema命名空间下。

2、详细说明

[Table(string name,[Schema = string])]

name 想要定义的表名称

Schema 可选参数,数据库的模式名称

 

[Column(string name,[Order = int],[TypeName = string])]

name 列名

Order 可选参数,列的顺序,从0开始,注意必须为每个属性都设置(不可重复)才能生效、

TypeName 可选参数,列的数据类型

 

[NotMapped]  不将该属性映射到数据库的列

 

[ForeignKey(string name)]  设置外键3种方式

 

[Index(string name)] 为列创建索引

IsClustered用来创建聚合索引, IsUnique用来创建唯一索引。

 

[InverseProperty(string name)]  有多个对应关系时,指定关系

[Key]  设为主键,若是为int类型,将自动设置为自增加列

[None] 用于不将主键设置为自增加列

[Required]  设置列不为空

[MaxLength(int)]  设置最大长度,只能用在string类型和byte[]数组类型

[ConcurrencyCheck]  修改或删除时,将带此属性的列的原有值与主键一块儿传送到数据库,若是传递的值与数据库中不一致,则修改或删除失败。用于并发检查