SuperAPI AI 工具集

efcore-patterns

通用与其它

查看项目

更新于 10-16 01:08

技能介绍

用途:本技能用于在新项目中配置 EF Core、优化查询性能、管理数据库迁移、集成 .NET Aspire、排查变更跟踪问题,以及高效加载多个导航集合。核心原则包括默认 NoTracking、不手改迁移文件、迁移执行与启动分离、使用 ExecutionStrategy 处理瞬时故障、NoTracking 下显式标记更新。

主要能力:一是默认禁用变更跟踪,写操作需显式 Update 或 AsTracking;二是用 AsSplitQuery 避免多集合 Include 产生笛卡尔积,也可全局设置 QuerySplittingBehavior;三是通过 dotnet ef 命令创建、移除、应用迁移并生成幂等 SQL 脚本和迁移包;四是用独立迁移服务配合 Aspire 编排;五是 CreateExecutionStrategy 重试瞬时故障并配合事务;六是拦截器实现审计时间戳与软删除;七是编译查询与 ExecuteUpdate/ExecuteDelete 批量操作。

使用方式:DbContext 按场景选择生命周期,Web 请求用 Scoped,后台服务与 Blazor Server 用 IDbContextFactory,高频场景用池化注册;迁移命令需指定 --project 与 --startup-project。

适用场景:ASP.NET Core、后台服务、Blazor Server、控制台应用的 EF Core 数据访问层设计与优化。

限制:生产环境不应在启动时调用 Database.Migrate(),应使用迁移包或脚本;池化时不得在 DbContext 子类保存每请求状态或注入 Scoped 服务;编译查询仅适合每秒执行数千次的查询;拆分查询不保证原子性。价格与许可资料暂未提供。