介绍 Kepler.Core — 用于 EF Core API 的智能字段选择
发布: (2025年12月15日 GMT+8 05:02)
3 min read
原文: Dev.to
Source: Dev.to
概览
Kepler.Core 是一个 EF Core 扩展,允许你通过仅选择所需字段来提升性能。它支持灵活的过滤、敏感字段排除以及对生成查询的完整可视化。
关键特性
- 选择性字段检索 – 精确指定查询中要包含的属性。
- 丰富的过滤 – 可使用任意过滤类型(如
Contains、StartsWith、Equals等)。 - 敏感字段排除 – 通过属性或 Fluent API 在全局隐藏字段。
- 全局覆盖 – 设置
IgnoreGlobalExceptions = true可在需要时绕过所有排除。 - 透明的 SQL 生成 – 查看 NuGet 包生成的完整 lambda 表达式和 SQL——不再是黑箱。
- 策略管理 – 为每个模型/表定义多个具名策略,以满足不同使用场景。
- 内省帮助器 – 检查全局排除、过滤、排序字段以及策略选中的属性。
入门指南
-
添加包
dotnet add package Kepler.Core -
在
Program.cs(或配置服务的地方)创建策略services.AddKeplerCore(options => { options.PolicyName = "MyPolicy"; options.IgnoreGlobalExceptions = false; // 配置 includes、excludes、filters 等 }); -
查询时应用策略
var result = await dbContext.Customers .ApplyKeplerPolicy("MyPolicy") .ToListAsync();查询将仅选择 MyPolicy 中定义的字段,并遵守所有全局排除规则。
多策略
你可以根据需要定义任意数量的策略,每个策略都有自己的包含/排除字段和过滤条件。执行查询时通过名称引用相应的策略。
有用链接
- NuGet 包:
- 源码:
演示项目
提供了一个使用 AdventureWorks 2022 数据库的完整演示。克隆仓库并运行演示,即可看到 Kepler.Core 的实际效果:
git clone https://github.com/MohammadAliEbrahimzadeh/Kepler.Core.git
cd Kepler.Core/Demo
dotnet run
贡献与反馈
如果你觉得 Kepler.Core 有用,请为仓库点个 ⭐。如有问题、建议或想要贡献代码,请在 GitHub 上打开 issue 或提交 pull request。欢迎你的反馈。