日志25-7-15
本文最后更新于 2025年7月24日星期四 17:34
今天主要学习管理数据库架构、查询数据、保存数据这3个章节。
- 管理数据库架构
- 迁移:写好C#实体类后用迁移指令生成数据库表,更换环境后可以再用迁移指令复刻当时记录下来的数据库表
- 创建和删除API:用于测试环境
- 逆向工程:先创建数据库表,再生成实体类型代码
- 查询数据
- 跟踪查询:DbContext默认记录查询结果,在调用saveChanges()后,会自动生成执行相关的修改代码
- 加载相关数据:当一个类拥有其他类的数据时,指定被包含的类如何加载
- 预先加载:【推荐】查询主实体后立刻加载
- 延迟加载:查询主实体后,手动加载
- 显式加载:访问导航属性时再加载
- 拆分查询:将一个大的SQL拆成多个小SQL
- 复杂查询运算符:SQL中的聚合函数
- SQL查询:直接使用原生SQL语句来查询
- 查询标记:为生成的SQL语句产生注释
- NULL值的比较:SQL中的NULL值严格来说是UNKNOWN,在比较2个NULL值时要用Object.Equal()
- 保存数据
- 基本保存:跟踪查询直接使用SaveChanges(),非跟踪查询需要追加Attach()或Update()
- 相关数据:当一个类中存在其他类数据时,添加/删除/修改父子关系都会导致父类/子类同步被添加/删除/修改外键
- 级联删除:默认启用,删除父类时,子类也被删除
- 版本冲突:EF Core使用乐观锁
- ExecuteUpdate()、ExecuteDelete():直接在SQL服务器执行修改/删除操作
- 事务
- 显示事务
- 隐式事务
日志25-7-15
https://zhiyun.blog/日志25-7-15/