Breaking Changes
- Dropped abstract type projection support (#1233) — Abstract types in projections are no longer automatically
handled. Use concrete types or explicit projections instead. - Removed obsolete APIs (#1230) — Previously deprecated APIs have been removed.
Bug Fixes
- Fix circular Include walkback — Track visited entity types when building Include paths to prevent infinite loops
with circular or redundant includes. - Fix connection ordering check when Include() strips IOrderedQueryable (#1262) — Entities with read-only properties
no longer break connection ordering after Include() strips the IOrderedQueryable interface. - Fix projection of fragment spreads in connection node fields (#1261) — Fragment spreads (... on Type) now project
correctly in connection items/edges/node fields. - Get navigation props working on concrete types where the name property is not present on the TPH base (#1254) —
Navigation properties defined only on derived types in TPH hierarchies now resolve correctly. - Avoid converting filter projections to strings (#1231) — Filter projections are no longer unnecessarily stringified.
Enhancements
- Support casts in ProjectionAnalyzer — ProjectionAnalyzer now handles UnaryExpression nodes (Convert, TypeAs),
enabling property path extraction through explicit and as casts. - Added discriminator for TPH tables (#1236) — TPH (Table Per Hierarchy) tables now include discriminator handling.
- WithProjection — Added projection support improvements.
- Clarified guidance for abstract projections — Error and diagnostic messages now recommend either making the type
concrete or using an explicit projection.
Dependencies
- Bumped EfOrderBy from 0.1.6 to 0.2.1 (#1234)
- Bumped MarkdownSnippets.MsBuild to 28.0.2
- Various package updates
Other
- Modernised SampleWeb project
- Analyzer project references now only included in Release configuration
- Removed try/catch around Include calls (no longer needed after projection changes)
- Various cleanup and ref updates