Impatient:LINQ 查询提供程序基础设施库
构建 SQL 数据库 LINQ 查询提供程序的 .NET 库,并提供替换 EF Core 默认查询编译器的 SQL Server 实现。
Impatient 是一个为 SQL 数据库构建 LINQ 查询提供程序提供基础设施的库,支持导航属性、绝大多数标准 LINQ 查询运算符(Select/Where、Join/GroupJoin/GroupBy、聚合、集合运算、SkipWhile/TakeWhile 等),以及利用数据库原生 JSON 支持(如 SQL Server 的 FOR JSON)来物化嵌套集合和复杂类型列、查询 JSON 对象属性与数组元素,避免 n+1 查询。Impatient.EntityFrameworkCore.SqlServer 项目在此基础上替换 EF Core 默认的 IQueryCompiler,通过了 EF Core 自身超过 5500 个规范测试。目前唯一支持的数据库是 SQL Server 2016 及以上版本。README 还说明了与 EF Core 的实现差异(异步查询、变更跟踪、GroupBy/SelectMany 手动左连接的可空性传播等)和不支持的功能(ROW_NUMBER 分页、FromSql、客户端求值警告等)。