数据批注属性是 .NET 属性,可以应用于实体类或属性,以替代 EF 6 和 EF Core 中的默认约定。
数据批注属性包含在 EF 6 和 EF Core 的 and命名空间中。 这些属性不仅在实体框架中使用,还可以与 ASP.NET MVC 或数据控件一起使用。System.ComponentModel.DataAnnotations
System.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+ 不支持此属性。 |