EF Core 实战教程(三)Fluent Api配置详解
Entity Framework Core Fluent API用于配置领域实体类以覆盖约定。 EF Fluent API基于Fluent API设计模式(也称为Fluent接口),其中结果通过方法链来表示。
在Entity Framework Core中,ModelBuilder类充当Fluent API。通过使用它,我们可以配置许多不同的东西,因为它提供了比数据注释属性更多的配置选项。
Entity Framework Core Fluent API配置了模型的以下方面:
1、模型配置:将EF模型配置为数据库映射。配置默认架构,数据库功能,其他数据注释属性和要从映射中排除的实体。
2、实体配置:配置实体到表和关系的映射,例如PrimaryKey,AlternateKey,Index,表名,一对一,一对多,多对多关系等。
3、属性配置:将属性配置为列映射,例如列名称,默认值,可空性,外键,数据类型,并发列等。
下表列出了每种配置类型的重要方法:
配置 | Fluent API方法 | 用法 |
---|---|---|
模型配置 | HasDbFunction() | 在定位关系数据库时配置数据库功能 |
HasDefaultSchema() | 指定数据库架构 | |
HasAnnotation() | 在实体上添加或更新数据注释属性 | |
HasSequence() | 定位关系数据库时配置数据库序列 | |
实体配置 | HasAlternateKey() | 在EF模型中为实体配置备用密钥 |
HasIndex() | 配置指定属性的索引 | |
HasKey() | 将属性或属性列表配置为主键 | |
HasMany() | 配置关系的“很多”部分,其中实体包含一对多或多对多关系的其他类型的引用集合属性 | |
HasOne() | 配置关系的“一部分”,其中实体包含一对一或一对多关系的其他类型的引用属性 | |
Ignore() | 配置不应将类或属性映射到表或列 | |
OwnsOne() | 配置关系,其中目标实体由该实体拥有。目标实体键值是从它所属的实体传播的 | |
ToTable() | 配置实体映射到的数据库表 | |
属性配置 | HasColumnName() | 在数据库中为属性配置相应的列名称 |
HasColumnType() | 为属性配置数据库中相应列的数据类型 | |
HasComputedColumnSql() | 配置属性以在关系数据库为目标时映射到数据库中的计算列 | |
HasDefaultValue() | 为目标关系数据库配置属性映射到的列的默认值 | |
HasDefaultValueSql() | 在定位关系数据库时,为属性映射到的列配置默认值表达式 | |
HasField() | 指定要与属性一起使用的后备字段 | |
HasMaxLength() | 配置可以存储在属性中的最大数据长度 | |
IsConcurrencyToken() | 将属性配置为用作乐观并发令牌 | |
IsRequired() | 配置属性的有效值是必需的还是null为有效值 | |
IsRowVersion() | 配置要在乐观并发检测中使用的属性 | |
IsUnicode() | 配置字符串属性,该属性可以包含或不包含Unicode字符 | |
ValueGeneratedNever() | 配置保存实体时不能具有生成值的属性 | |
ValueGeneratedOnAdd() | 配置在保存新实体时属性具有生成的值 | |
ValueGeneratedOnAddOrUpdate() | 配置保存新实体或现有实体时属性具有生成的值 | |
ValueGeneratedOnUpdate() | 配置在保存现有实体时属性具有生成的值 |
微信扫一扫,欢迎进群交流:
猜您可能还喜欢
- EF Core 实战教程(八)一对多关系配置(1125)
- EF Core 实战教程(四)EF Core如何设置主键(909)
- EF Core 实战教程(六)如何查看EF Core生成的Sql语句(893)
- EF Core 实战教程(七)通过读取appsetting.json数据库链接字符串链接数据库(821)
- EF Core 实战教程(三)Fluent Api配置详解(596)
- EF Core 实战教程(一)配置环境及使用code first 创建数据库(587)
- EF Core 实战教程(五)Migrations深入研究及使用详解(525)
- EF Core 实战教程(二)实现基本的查询、增加、修改、删除功能(514)
- 解决Asp.net Core Razor页面调试时无法实时更新(502)
- EF Core实现充血模型(478)
评论列表
发表评论
文章分类
文章归档
- 2025年3月 (1)
- 2024年6月 (2)
- 2024年5月 (2)
- 2024年4月 (4)
- 2024年3月 (30)
- 2024年1月 (4)
- 2023年12月 (2)
- 2023年11月 (4)
- 2023年10月 (4)
- 2023年9月 (6)
- 2023年3月 (2)
- 2023年2月 (1)
- 2023年1月 (1)
- 2022年12月 (1)
- 2022年9月 (21)
- 2022年8月 (10)
- 2022年7月 (3)
- 2022年4月 (1)
- 2022年3月 (13)
- 2021年8月 (1)
- 2021年3月 (1)
- 2020年12月 (42)
- 2020年11月 (7)
- 2020年10月 (5)
- 2020年8月 (1)
- 2020年6月 (1)
- 2020年3月 (2)
- 2019年12月 (8)
- 2019年11月 (3)
- 2019年9月 (1)
- 2019年4月 (1)
- 2019年3月 (6)
- 2019年2月 (1)
- 2018年7月 (7)
阅读排行
- 1.asp.net mvc内微信pc端、H5、JsApi支付方式总结(5702)
- 2.各大搜索网站网站收录提交入口地址(3201)
- 3.Windows 10休眠文件更改存储位置(3164)
- 4.ECharts仪表盘实例及参数使用详解(3095)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(2992)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(2866)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(2784)
- 8.CERT_HAS_EXPIRED错误如何解决(2249)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2189)
- 10.HBuilder编辑器格式化代码(2118)