介绍 Kepler.Core — 用于 EF Core API 的智能字段选择

发布: (2025年12月15日 GMT+8 05:02)
3 min read
原文: Dev.to

Source: Dev.to

概览

Kepler.Core 是一个 EF Core 扩展,允许你通过仅选择所需字段来提升性能。它支持灵活的过滤、敏感字段排除以及对生成查询的完整可视化。

关键特性

  • 选择性字段检索 – 精确指定查询中要包含的属性。
  • 丰富的过滤 – 可使用任意过滤类型(如 ContainsStartsWithEquals 等)。
  • 敏感字段排除 – 通过属性或 Fluent API 在全局隐藏字段。
  • 全局覆盖 – 设置 IgnoreGlobalExceptions = true 可在需要时绕过所有排除。
  • 透明的 SQL 生成 – 查看 NuGet 包生成的完整 lambda 表达式和 SQL——不再是黑箱。
  • 策略管理 – 为每个模型/表定义多个具名策略,以满足不同使用场景。
  • 内省帮助器 – 检查全局排除、过滤、排序字段以及策略选中的属性。

入门指南

  1. 添加包

    dotnet add package Kepler.Core
  2. Program.cs(或配置服务的地方)创建策略

    services.AddKeplerCore(options =>
    {
        options.PolicyName = "MyPolicy";
        options.IgnoreGlobalExceptions = false;
        // 配置 includes、excludes、filters 等
    });
  3. 查询时应用策略

    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。欢迎你的反馈。

Back to Blog

相关文章

阅读更多 »

掌握在 .NET 中使用 NuGet 包

NuGet到底是什么?想象一下,NuGet是 .NET 版的 Amazon 或 Mercado Libre。你不会自己制造家具的每一颗螺丝,而是向商店购买它们。- Package...