欢迎光临
个人技术文档整理

EF 6 和 EF Core 中的数据批注属性

数据批注属性是 .NET 属性,可以应用于实体类或属性,以替代 EF 6 和 EF Core 中的默认约定。

数据批注属性包含在 EF 6 和 EF Core 的 and命名空间中。 这些属性不仅在实体框架中使用,还可以与 ASP.NET MVC 或数据控件一起使用。System.ComponentModel.DataAnnotationsSystem.ComponentModel.DataAnnotations.Schema

这些数据批注属性在 EF 6 和 EF Core 中的工作方式相同,并且在两者中都有效。

注意:数据注释仅提供配置选项的子集。Fluent API提供了代码优先中可用的全套配置选项。

System.ComponentModel.DataAnnotations 属性

属性 描述
Key Key 主键 对应 数据库中的 PrimaryKey 列。
Timestamp 时间戳列对数据库中的 UPDATE 语句进行并发检查。RowVersion
ConcurrencyCheck 可以应用于属性以指定应将相应的列包含在乐观并发检查中。
Required 必需属性  NotNull 列。
MinLength 允许的最小字符串长度。
MaxLength 允许的最大字符串长度。
StringLength 允许的最大字符串长度。

System.ComponentModel.DataAnnotations.Schema Attributes

属性 描述
Table 表名、架构
Column 列名、顺序、数据类型
Index 可以应用于属性以配置相应的列在数据库中应具有索引。(仅限 EF 6.1 及更高版本,EF Core 2.0+ 不支持此属性。)
ForeignKey 可以应用于属性以将其标记为外键属性。
NotMapped 未映射属性  支持:表名、字段
DatabaseGenerated 可以应用于属性以配置基础数据库应如何为相应列生成值,例如标识、计算或无。
InverseProperty 可以应用于属性以指定表示同一关系另一端的导航属性的逆向。
ComplexType 在 EF 6 中将类标记为复杂类型。EF Core 2.0+ 不支持此属性。

 

 

赞(1)