.1 入门简要
对 EF/EFCore 有一定基础了解,还未接触的可先看 【EFCore 基础】
.2 数据库上下文
新特性
.3 数据库上下文定位器
只要数据库上下文注册绑定了数据库上下文定位器,那么所有的仓储、实体、种子、配置、视图、函数等数据库相关的类、接口、方法都需要指定数据库上下文定位器,默认数据库上下文定位器除外。
.4 数据库实体
新特性
.5 仓储模式 (Repository)
新特性
.6 新增操作
问题修复
.7 更新操作
新特性
.8 新增或更新操作
以下内容在 Furion 2.5.1 + 版本中已移除。此操作让很多不了解 EFCore 的开发者产生了很大的误解,不知何时新增或何时更新,故移除此功能。
.9 删除操作
以下内容包含 Exists 单词的在 Furion 2.6.0 + 版本中已移除。
.10 批量操作
新特性
.11 查询操作
新特性
.12 高级查询操作
一对一 和 一对多 查询方法一样,唯一的区别是:一对多 采用 ICollection<TEntity> 定义属性。
.13 视图操作 🔒
视图是数据库中非常重要的对象,是一张虚拟表,通过视图我们可以对结果进行筛选缓存,同时还能实现颗粒化权限控制,如控制指定行,指定列。
.14 存储过程操作 🔒
推荐使用 《9.18 Sql 高级代理》代替本章节功能。Sql 高级代理 能够提供更容易且更易维护的方式。
.15 函数操作 🔒
推荐使用 《9.18 Sql 高级代理》代替本章节功能。Sql 高级代理 能够提供更容易且更易维护的方式。
.16 Sql 操作 🔒
问题修复
.17 Sql 模板 🔒
通常我们程序中执行数据库的 sql 语句都写在了程序集中,随程序一起编译,后续需要修改,则重新编译代码。
.18 Sql 高级代理 🔒
新特性
.19 多种数据库操作 🔒
新特性
.20 数据库生成模型 (Db First) 🔒
新特性
.21 模型生成数据库 (Code First) 🔒
Furion.Web.Entry 层需要安装 Microsoft.EntityFrameworkCore.Tools 包。
.22 实体种子数据 🔒
一旦定义了种子数据或改变了种子数据,需要重新执行 Add-Migration 和 Update-Database 命令。
.23 审计日志 (Audit) 🔒
在一个企业应用系统中,用户对系统所有的操作包括请求、数据库操作等等都应该记录起来,那么这些日志我们称为操作日志,也可以说审计日志。
.24 实体/全局查询筛选器 🔒
通常,我们系统中有一些维护字段,如 IsDeleted 字段,这个字段用来标识用户已经删除的数据,那么我们需要每次查询数据的时候带上这个字段,避免查询出不该出现的数据。
.25 数据库操作拦截器 🔒
Furion 框架提供四种数据库操作拦截器,可以通过拦截器动态修改数据库连接字符串,动态修改 sql,动态更改参数等操作。
.26 实体数据监听器 🔒
问题修复
.27 事务和工作单元 (UnitOfWork) 🔒
新特性
.28 读写分离/主从复制 🔒
其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。
.29 分表分库 🔒
新特性
.30 EFCore 最佳实践
在 Furion 框架,默认推荐使用 EFCore 操作数据库,但很多朋友对 EFCore 使用不当,特意编写此文档说明。