Add RelationalExtensions.Abstractions for SQL window functions#16
Add RelationalExtensions.Abstractions for SQL window functions#16
Conversation
…and remove deprecated window function implementations
There was a problem hiding this comment.
Pull request overview
This PR introduces a new marker-only package for SQL window function APIs, aiming to let consumers reference window-function stubs without taking an EF Core dependency, while keeping SQL translation in the existing RelationalExtensions package.
Changes:
- Added
ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractionsproject containing window-function marker APIs (Window,WindowFunction, and window definition marker types). - Updated
ExpressiveSharp.EntityFrameworkCore.RelationalExtensionsto reference the new abstractions project. - Registered the new project in the solution and documented the updated dependency graph in
CLAUDE.md.
Reviewed changes
Copilot reviewed 4 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.csproj | Adds a project reference to the new abstractions package so translators can compile against moved marker types. |
| src/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractions/WindowFunction.cs | New public window-function stub methods (translated to SQL; throw if executed). |
| src/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractions/WindowDefinition.cs | New marker types for building window specs via fluent chaining. |
| src/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractions/Window.cs | New entry-point stubs for constructing window specs (PartitionBy/OrderBy). |
| src/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractions/ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractions.csproj | New SDK-style project file describing the marker-only package. |
| ExpressiveSharp.slnx | Adds the new abstractions project to the solution. |
| CLAUDE.md | Documents the new project and updated dependency structure. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'ExpressiveSharp Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: 9061d22 | Previous: dc0d77d | Ratio |
|---|---|---|---|
ExpressiveSharp.Benchmarks.ExpressionReplacerBenchmarks.Replace_Property |
2128.3470255533853 ns (± 260.9707806963987) |
1770.9227091471355 ns (± 232.4954883072158) |
1.20 |
ExpressiveSharp.Benchmarks.EFCoreQueryOverheadBenchmarks.WithExpressives_Method |
28270.91670735677 ns (± 9598.955527157135) |
21135.239705403645 ns (± 5378.281048071639) |
1.34 |
ExpressiveSharp.Benchmarks.GeneratorBenchmarks.RunGenerator_NoiseChange(ExpressiveCount: 1) |
3028949.8736979165 ns (± 390403.39524679136) |
2459189.6953125 ns (± 108004.7274287188) |
1.23 |
This comment was automatically generated by workflow using github-action-benchmark.
Added
ExpressiveSharp.EntityFrameworkCore.RelationalExtensions.Abstractionsas a separate nuget package.Closes #13