当惯例规则不符合设计需求时,我们可以使用数据注解配置打造更合适的数据库模型。本文根据示例项目对常用的数据注解属性做一个简要的举例说明。
EFCodeFirst使用的约定大于配置的的编程模式, 这种模式利用默认约定根据我们的领域模型建立概念模型。然我们可以用配置领域来覆盖默认约定。覆盖默认约定主要有两种手段:
1、数据注解属性。
2、FluentAPI。
Key | 数据库中对应为主键 |
TimeStamp | 数据库中对应类型为timestamp类型,主要用于解决高并发问题。注:一个类只能用一次,且修饰的属性必须为byte[]类型 |
ConcurrencyCheck | 数据库中对应列为进行乐观并发检测,主要用于检测高并发问题 |
Required | 属性不能为空,数据库中对应列不能空 |
MinLength/MaxLength | 属性和数据库中最大和最小String长度 |
Schema | 配置实体对应的数据库架构名 |
Table | 配置实体类对应的表名 |
Column | 用于配置实体类中的属性,配置属性对应的数据库列名,顺序和数据类型 |
ForeignKey | 用于属性,指定属性为一个外键 |
NotMapped | 用于实体或者属性,不在数据库中生成映射 |
DataBas |