EFCore-FluentAPI
EF Core-FluentAPI
在约定大于配置这一规则下,EF Core提供了一些约定配置
- 表明采用DbContext中对应的DbSet的属性名
- 数据表列的名字采用实体类的属性名字,列的数据类型采用实体类属性中最兼容的类型
- 数据表列的可空性取决于对应实体类属性的可空性(通过属性类型的?来调整是否为可空)
- 名字为Id的属性为主键,如果主键为short,int或者long类型,则默认采用自增字段
- 如果主键为Guid类型,则默认采用默认的Guid生成机制生成主键值
FluentAPI
这种方式就是创建一个配置类以实现IEntityTypeConfiguration接口后对实体类(表)进行配置
这种方法配置起来更麻烦,但能解耦合
| 方法名 | 说明 |
|---|---|
| Ignore() | 忽略表中某一属性 |
| HasColumnName() | 配置列名*(需要先获取属性) |
| HasColumnType() | 配置列的类型 |
| HasKey() | 配置主键*(需要先获取属性) |
FluentAPI并不只是可以使用在配置类中,也可以在DbContext的OnModelCreating方法中直接使用
1 | |
Data Annotation
使用特性(Java中的注解)这一方式来配置实体类和表
不推荐使用这种方式,因为耦合度高
Table
1 | |
Required&&MaxLength
1 | |
EFCore-FluentAPI
http://blog.170827.xyz/2024/09/23/EFCore-FluentAPI/