EFCore-3FluentAPI

约定配置

主要规则:

1:表名采用DbContext中对应的DbSet的属性名。

2.数据表列的名称采用实体类属性的名字,列的数据类型采用和实体类属性类型最兼容的类型。

 3.数据表列的可空性取决于对应实体类属性的可空性。

 4.名字为Id的属性为主键,如果主键为short,int 或者long类型,则默认采用自增字段,如果主键为Guid类型,则默认采用默认的Guid生成机制生成主键值。(SqlServer数据库)

两种配置方式

1.FluentAPI

上图中的配置方法属于FluentAPI的写法,也就是把配置写道单独的配置类中。

缺点:复杂(需要单独为实体类写一个配置类)

优点:解耦(实体类中只需要定义字段内容)

2.Data Annotation

上图中的配置方法属于Data Annotation的写法,把配置以特性(Annotation)的形式标注在实体类中。

缺点:耦合(实体类中就定义了字段的约束,使该实体负有过多的使命)

优点:简单(无需为实体类再创建其他的配置类)

项目中建议统一使用FluentAPI的形式完成对实体类的配置

FluentAPI的更多用法:

1.排除属性映射

通过调用Ignore方法,参数传入字段名称,在数据库生成字段的时候就不会生成该字段。

可以看到在数据库的表中没有生成Test2字段。

2.配置列名或列类型

自定义字段的名称和类型(这里也可以定义长度),可以与实体不同。下面是数据库中的效果:

 

3.配置主键

如果不特殊配置,EFCore默认把Id或者“实体类型+Id”的属性作为主键,可以用HasKey()来配置其他属性作为主键。

 数据库效果:

 

4.可以使用HasDefaultValue为属性设置默认值

5.索引

主键索引、普通索引、复合索引

 

其他的用法还用很多,具体可以查看相关文档。

Entity Framework Core 概述 - EF Core | Microsoft Docs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值