用途:为 .NET 10 项目提供 EF Core 的推荐用法与模式,帮助统一数据访问层写法。
主要能力:DbContext 配置(IEntityTypeConfiguration<T> 分离实体配置、ApplyConfigurationsFromAssembly 自动加载);查询投影(用 Select 投影到 DTO,避免过度获取与 N+1);分页;ExecuteUpdateAsync/ExecuteDeleteAsync 批量操作绕过变更跟踪;SaveChangesInterceptor 处理审计与软删除;EF.CompileAsyncQuery 编译查询用于高频热路径;值转换器(枚举存字符串、强类型 ID);全局查询过滤器(软删除、多租户,可用 IgnoreQueryFilters 绕过);迁移工作流。
使用方式:注册用 builder.Services.AddDbContext<AppDbContext>(options => options.UseNpgsql(...)),可加 AddInterceptors。迁移命令:dotnet ef migrations add AddOrderIndex --project src/MyApp.Infrastructure --startup-project src/MyApp.Api;dotnet ef database update --project src/MyApp.Infrastructure --startup-project src/MyApp.Api;生产用 dotnet ef migrations script --idempotent --output migrations.sql。
适用场景:标准 CRUD 用 DbContext 加投影;百行以上批量更新用 ExecuteUpdateAsync/ExecuteDeleteAsync;热路径读用编译查询;复杂报表用原始 SQL 或 Dapper;审计用 SaveChangesInterceptor;多租户与软删除用全局查询过滤器;强类型 ID 用值转换器;生产迁移用幂等 SQL 脚本,不自动迁移。
限制与反模式:不要把 DbContext 再包一层 Repository/UoW;不要用延迟加载;不要先 ToListAsync 再在内存过滤;不要漏写 await。资料未提供具体版本兼容范围、性能基准与授权收费信息。