Repository navigation
Releases: peterjohncasasola/DynamicQueryable.Extensions
Release list
v2.5.1
v2.5.0
🚀 Release v2.5.0
feat(projection): implement recursive alias support and flat-mixed mode (v2.5.0)
Implement recursive alias support using the as keyword across all navigation levels in ProjectionBuilder.
Add mode=flat-mixed to allow flattening root entity fields alongside deeply nested collection fields via correlated SelectMany chains.
Redesign FlatProjectionBuilder with a level-based context tracking system for robust multi-level flattening.
Enhance mode=flat with alias support and improved validation for linear navigation paths.
Update QueryOptionsParser to support the new flat-mixed mode parameter.
Fix projection cache key to include aliases, preventing incorrect expression reuse.
Add comprehensive integration tests for nested, flat, and flat-mixed aliased projections.
Update README.md and CHANGELOG.md with detailed examples and migration guidance.
v2.4.1
🚀 Release v2.4.1
chore(docs): add MIT license and refresh README branding
- Add MIT License file for open-source distribution.
- Update README with license section and links.
- Refresh README header with NuGet badges and improved project description.
v2.4.0
🚀 Release v2.4.0
feat: implement Unified Projection Pipeline and Mixed-Format Include Support
- Unified Projection Mode: Merged Filtered Includes and Select into a single optimized EF Core Select() expression tree to minimize database payload.
- Mixed-Format Include Chaining: Enhanced FilteredIncludeParser to support mixed DSL (:) and JQL (=) formats within a single chain (e.g., Orders(status:eq:cancelled).Items(sku = 'AAA')).
- Exclusive Selection Priority: Explicitly selected fields in the
selectparameter now override the default "include all scalars" behavior for navigation properties, preventing over-fetching. - Whitespace Resiliency: Improved parser to handle trailing/leading spaces in complex include chains and nested parentheses.
- Internal: Optimized recursive filter merging in ProjectionBuilder to propagate navigation filters deeply into hierarchical projections.
- Documentation: Updated README with Mixed-Format examples and Unified Projection tips.
v2.3.0
🚀 Release v2.3.0
feat: implement dual-pipeline architecture and filtered includes for EF Core
- Implement Dual-Pipeline Architecture: Decouples root entity filtering (WHERE) from related data shaping (Filtered Includes) to prevent over-filtering side effects.
- Add Filtered Includes Support: Enables inline JQL filters within the
includequery parameter (e.g.,include=orders(total > 100).items). - Unified Projection: Integrated filtered includes into the Dynamic Projection engine, ensuring filters are translated into efficient database-side Select() expressions.
- Robust Collection Support: Enhanced type detection to support List, ICollection, and other generic collections in hierarchical filtered projections.
- Documentation: Updated README with Dual-Pipeline usage examples and architectural overview.
- Testing: Added comprehensive integration tests covering nested filters and dual-pipeline execution.
v2.2.1
🚀 Release v2.2.1
feat(expression): implement null-safe recursive scoped collection filtering
- Enhancement: Added native support to ExpressionBuilder for translating scoped collection nodes into proper LINQ Any()/All() expressions.
- Enhancement: Implemented recursive expression building to support deep multi-level navigation (e.g., Orders -> OrderItems).
- Enhancement: Added automatic null-safety checks to collection-based expressions (collection != null AndAlso collection.Any(...)) to prevent NullReferenceExceptions in in-memory providers.
v2.2.0
🚀 Release v2.2.0
feat(query): add scoped collection filtering with nested ANY support
- Introduced scoped collection filtering to ensure multiple conditions apply to the same collection element
- Added support for:
- orders.any(...)
- orders[...]
- Updated parser to detect and group collection-based conditions
- Implemented recursive AST structure for nested collections
- Ensured backward compatibility with existing flat expressions
- Output now generates structured QueryNode tree
v2.1.0
🚀 Release v2.1.0
feat(jql): enhance parser with SQL-like syntax, new operators, and improved tokenizer
- add IS NULL, IS NOT NULL, BETWEEN, LIKE, STARTSWITH, ENDSWITH
- add collection operators ANY, ALL, COUNT
- implement ALL operator in expression builder
- improve tokenizer for case-insensitivity and quoted values
v2.0.1
🚀 Release v2.0.1
doc(readme) : update the readme based on changed log
v1.9.0
🚀 Release v1.9.0
feat(query): add advanced query and aggregate support
feat(filter): add advanced DSL operators (not, like, any, count)
feat(core): introduce pluggable operator handling
feat(efcore): move EF-specific behavior to optional EFCore extension
feat(grouping): add group by, aggregate select, and having support
test(query): add coverage for new filter and grouping features
docs(readme): update usage guide with advanced filter and aggregate examples