flowchart TD
subgraph EF Core架构层次
A[DbContext] --> B[数据库上下文]
B --> C[实体模型管理]
C --> D[变更跟踪器]
E[Model] --> F[实体模型]
F --> G[实体关系]
G --> H[映射配置]
I[Provider] --> J[数据库提供器]
J --> K[SQL生成]
J --> L[连接管理]
end
subgraph 数据访问流程
M[LINQ查询] --> N[表达式树构建]
N --> O[查询编译]
O --> P[SQL生成]
P --> Q[数据库执行]
Q --> R[结果返回]
R --> S[对象映射]
S --> T[实体实例]
end
subgraph 变更跟踪机制
U[实体添加] --> V[EntityState.Added]
V --> W[ChangeTracker记录]
X[实体修改] --> Y[EntityState.Modified]
Y --> Z[属性变更检测]
AA[实体删除] --> AB[EntityState.Deleted]
AB --> AC[标记删除]
AD[SaveChanges] --> AE[生成SQL语句]
AE --> AF[事务提交]
end
subgraph 实体关系映射
AG[一对一关系] --> AH[HasOne-WithOne]
AH --> AI[外键约束]
AJ[一对多关系] --> AK[HasMany-WithOne]
AK --> AL[导航属性]
AM[多对多关系] --> AN[HasMany-WithMany]
AN --> AO[连接表]
end
subgraph 模型配置方式
AP[DataAnnotations] --> AQ[属性标记]
AQ --> AR[简单配置]
AS[Fluent API] --> AT[链式配置]
AT --> AU[复杂配置]
AV[IEntityTypeConfiguration] --> AW[分离配置]
AW --> AX[模块化管理]
end
subgraph 数据库迁移
AY[Add-Migration] --> AZ[生成迁移文件]
AZ --> BA[Up/Down方法]
BB[Update-Database] --> BC[执行迁移]
BC --> BD[数据库更新]
BE[Remove-Migration] --> BF[撤销迁移]
BF --> BG[回滚变更]
end
subgraph 查询类型
BH[查询实体] --> BI[FromSqlRaw]
BI --> BJ[原生SQL]
BK[无键实体] --> BL[Keyless]
BL --> BM[视图/存储过程]
BN[投影查询] --> BO[Select匿名类型]
BO --> BP[DTO转换]
end
subgraph 事务管理
BQ[BeginTransaction] --> BR[显式事务]
BR --> BS[TransactionScope]
BT[SaveChanges] --> BU[隐式事务]
BU --> BV[自动提交]
BW[并发控制] --> BX[乐观并发]
BX --> BY[Timestamp/RowVersion]
end
B --> M
B --> AD
F --> AG
F --> AJ
F --> AM