Skip to content
FlexQuery.NET

v3.1.1 → v4 Change Matrix

Every row below was verified against the source diff between the v3.1.1 release and the current v4 implementation.

Areav3.1.1v4ChangeDocumentation
Configuration entryDI-era registrationStatic immutable FlexQueryCore.Configure()ChangedConfiguration
EF Core optionsQueryExecutionOptions.UseNoTracking/UseSplitQueryFlexQueryEfCoreOptions + EfCoreQueryOptions (bool? UseNoTracking); UseSplitQuery removedRenamed / ChangedEF Core
Dapper optionsDapperQueryOptions : BaseQueryOptions (Dialect, MappingRegistry public)DapperQueryOptions : QueryGovernanceOptions (CommandTimeout, LoggerFactory); model config moves to FlexQueryDapper.Configure + ModelBuilderChangedDapper
Dapper dialectManual ISqlDialectResolverAuto-detection from DbConnectionBehavior changedDapper
Dapper mappingMappingRegistry + public conventionsConvention-first ModelBuilder + IEntityTypeConfiguration<T> (conventions internal)ReplacedDapper
Typed DTO resultsNot availableFlexQueryAsync<TEntity,TResponse> (4 overloads per provider) + CreateMap/ForMember/ForNavigationAddedTyped DTO Projection
Filtered includesFilteredIncludes / ApplyFilteredIncludesexpand trees with filter/sort/take (QueryOptions.Expand / ApplyExpand)ReplacedExpand
Keyset paginationNot availableuseKeysetPagination, cursor, NextCursorToken, SeekAfterAddedKeyset Pagination
Fluent APIFilterBuilder onlyQuery.Create() + FilterGroupBuilder grammar + sort/expand/aggregate buildersChangedFluent API
Sort modelSortNode (in SortOption.cs)SortNode (in Paging/SortNode.cs) — type name unchangedNo API change
Select modelList<string> SelectList<SelectNode> (aliases + nested trees)ChangedProjection
AggregatesAggregateModel in select, string functionsDedicated aggregate parameter, AggregateFunction enum, PascalCase aliasesChangedGrouping & Aggregates
HAVINGAlias-integrity validationHavingNode expression tree, declared-aggregate enforcementBehavior changedGrouping & Aggregates
DSL logic operatorsConditions joined with ,; symbolic & / | acceptedConditions joined with & / | / AND / OR; a comma is now part of the value; ; in a filter is rejectedBehavior changedFiltering
Query syntaxesDSL, JSON, Indexed, Generic, JQL, MiniOData, AutoDetectDSL, FQL, MiniODataRemovedQuery Syntax
FQL parser packageFlexQuery.NET.Parsers.Jql, QuerySyntax.JqlFlexQuery.NET.Parsers.Fql, QuerySyntax.FqlRenamedQuery Syntax
Parser registrationDI services (ServiceCollectionExtensions, MiniODataFeature)Static Fql.Register() / MiniOData.Register()ChangedQuery Syntax
ValidationRule pipeline (QueryValidator rules)Same pipeline extended — expand/HAVING/grouping/keyset rules + ValidationResult/ValidationError modelExtendedValidation
Field exceptionsInvalidFilterFieldException / InvalidSortFieldExceptionUnified hierarchy under FlexQueryExceptionReplacedValidation
Case-insensitive filteringCaseInsensitive / CaseInsensitiveFields = trueRemovedRemovedMigration
Governance setsOn monolithic BaseQueryOptionsSame members on QueryGovernanceOptions (class split)ChangedSecurity
[FieldAccess]Allowed/Blocked/Filterable/Sortable/Selectable/Groupable/Aggregatable+ AllowedIncludes; class sealedChangedASP.NET Core
ASP.NET Core DIv3-era ServiceCollectionExtensions + QueryableAspNetCoreExtensionsAddFlexQuerySecurity, AddFlexQueryJson, AddFlexQuery (global config)ChangedASP.NET Core
OpenAPINot availableFlexQuery.NET.OpenApi (AddFlexQueryOpenApi, AddFlexQuery)AddedOpenAPI
Diagnostics listenerModels.IFlexQueryExecutionListener (ValueTask ×4)Execution.IFlexQueryExecutionListener — members unchangedNamespace moveDiagnostics
Debug outputDebugResultQueryDebugInfo via ToFlexQueryDebugReplacedDiagnostics
Result modelQueryResult<T> base members+ NextCursorToken, ResultShapeAddedQuery Result
Paging validationLooseMalformed page/pageSize/distinct throw; out-of-range clamps 1–1000Behavior changedPaging
Global optionsMutableImmutable after first callBehavior changedConfiguration
CancellationNot availableCancellationToken across async overloadsAddedEF Core, Dapper
Adapter JSON entryFromAgGridJson(string) / FromKendoJson(string)JsonElement.ToQueryOptions(); parser/converter classes removedChangedAG Grid, Kendo
Target frameworksnet6.0/net7.0/net8.0 eranet6.0/net8.0/net10.0 (OpenApi: net9.0/net10.0)ChangedInstallation