Conversation
…condition terminals, ordering, grouping, and flattening. - Added unit coverage for the full extension surface and EF Core SQLite coverage for expression expansion and translation.
- add public covariant IComposableExpression interface - accept the interface across enumerable and queryable LINQ extensions - support List<T>, arrays, and compatible sequences in SelectMany - preserve typed expanded expressions when no adaptation is needed - retain ComposableExpression as the public custom-wrapper base - add EF, covariance, interface-consumer, and extensibility coverage - document the consumption and inheritance API roles
- remove the net472 compatibility project from the solution - remove its Windows CI build and execution steps - remove the obsolete compatibility-check changelog entry
ycherkes
deleted the
added-queryable-and-enumerable-composable-expression-overloads-for-condition-terminals-ordering-grouping-and-flattening
branch
August 25, 2026 15:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR expands composable-expression support across LINQ method and query syntax while preserving the underlying query provider.
IEnumerable<T>andIQueryable<T>overloads for condition terminals, ordering, grouping, projection, and flattening.IComposableExpression<TSource, out TResult>consumption contract.SelectManyprojections returning concrete sequence types such asList<T>and arrays without callingAsEnumerable().ComposableExpression<TSource, TResult>public as the supported base for custom semantic wrappers, expansion, and delegate caching.Raffinert.Expressions.QuerySyntaxpackage targetingnetstandard2.1.AsRaffinertQuery()for expanding composition markers throughout C# query syntax without replacing the underlying provider.fromclauses, joins, group joins, ordering, grouping, continuations, and async enumeration.netstandard2.0.Implementation details
IComposableExpression.ToListAsync()andToArrayAsync()facade methods.Packages
Raffinert.Expressionsremains onnetstandard2.0.Raffinert.Expressions.QuerySyntaxtargetsnetstandard2.1and references the core package.Testing
List<T>, array, and custom-wrapper coverage.from, joins, grouping, ordering, and continuations.