FlexQuery.NET.Diagnostics
4.0.0-beta1.0
See the version list below for details.
dotnet add package FlexQuery.NET.Diagnostics --version 4.0.0-beta1.0
NuGet\Install-Package FlexQuery.NET.Diagnostics -Version 4.0.0-beta1.0
<PackageReference Include="FlexQuery.NET.Diagnostics" Version="4.0.0-beta1.0" />
<PackageVersion Include="FlexQuery.NET.Diagnostics" Version="4.0.0-beta1.0" />
<PackageReference Include="FlexQuery.NET.Diagnostics" />
paket add FlexQuery.NET.Diagnostics --version 4.0.0-beta1.0
#r "nuget: FlexQuery.NET.Diagnostics, 4.0.0-beta1.0"
#:package FlexQuery.NET.Diagnostics@4.0.0-beta1.0
#addin nuget:?package=FlexQuery.NET.Diagnostics&version=4.0.0-beta1.0&prerelease
#tool nuget:?package=FlexQuery.NET.Diagnostics&version=4.0.0-beta1.0&prerelease
FlexQuery.NET.Diagnostics
Execution diagnostics, observability, and timeline reporting for FlexQuery.NET queries.
When to Use This Package
Install this package when you need to inspect, measure, or monitor FlexQuery.NET execution.
It provides execution listeners, timing reports, and pipeline diagnostics for debugging, performance analysis, and observability.
Installation
dotnet add package FlexQuery.NET.Diagnostics
Quick Start
using FlexQuery.NET.Diagnostics;
var collector = new FlexQueryDiagnosticsCollector();
var result = await _context.Users.FlexQueryAsync(parameters, options =>
{
options.AllowedFields = new HashSet<string> { "Id", "Name" };
}, execution =>
{
execution.Listener = collector;
});
var report = collector.BuildReport();
Console.WriteLine($"Total: {report.Duration.TotalMs}ms");
Console.WriteLine($" Parse: {report.Duration.ParseMs}ms");
Console.WriteLine($" Translate: {report.Duration.TranslateMs}ms");
Console.WriteLine($" Database: {report.Duration.DatabaseMs}ms");
Console.WriteLine($" Materialize: {report.Duration.MaterializeMs}ms");
foreach (var entry in report.Timeline)
Console.WriteLine($"{entry.Stage}: {entry.DurationMs}ms");
Features
FlexQueryDiagnosticsCollector— Thread-safe collector capturing all pipeline stage eventsConsoleExecutionListener— Writes pipeline stage timing toConsolefor quick debugging- Diagnostics Report —
BuildReport()returnsFlexQueryDiagnosticsReportwith per-stage duration breakdown and timeline - 4 Lifecycle Events —
QueryParsed,QueryTranslated,QueryExecuted,QueryMaterialized - Custom Listeners — Implement
IFlexQueryExecutionListenerfor custom logging, metrics, or OpenTelemetry integration
Related Packages
- FlexQuery.NET — Core query engine
Documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- FlexQuery.NET (>= 4.0.0-beta1.0)
-
net6.0
- FlexQuery.NET (>= 4.0.0-beta1.0)
-
net8.0
- FlexQuery.NET (>= 4.0.0-beta1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.0 | 0 | 9/23/2026 |
| 4.0.0-rc.3 | 31 | 9/22/2026 |
| 4.0.0-rc.2 | 54 | 9/17/2026 |
| 4.0.0-rc.1 | 61 | 9/10/2026 |
| 4.0.0-preview.3 | 70 | 7/18/2026 |
| 4.0.0-preview.2 | 71 | 7/14/2026 |
| 4.0.0-preview.1 | 71 | 7/12/2026 |
| 4.0.0-beta1.0 | 62 | 9/8/2026 |
| 3.1.1 | 133 | 7/4/2026 |
| 3.1.0 | 131 | 6/26/2026 |
- feat(dapper): emit copy-paste-ready DECLARE scripts in SQL execution logs
- refactor(diagnostics): move SqlFormatter to the shared FlexQuery.NET.SqlFormatting namespace
- fix(dapper): rewrite expand-block filter/sort fields through nested TypeMaps
- feat(dapper): log final SQL and parameters before every Dapper command
- test: cover Dapper include boundary and ForMember nested select projection
- test: add ExpectedDeliveryDate and Address navigation to shared fixtures
- feat(dapper): rewrite nested select children through TypeMaps and merge include hydration
- test(integration): cover parent-preserving collection include semantics
- test(integration): cover DTO include graph boundary semantics
- feat(mapping): materialize only the requested navigation graph in typed DTO queries
- feat(core): add DynamicGroupedResult model for grouped query execution
- test: cover serialization, validation, DI, parser, and builder updates
- test(dapper): cover Dapper DTO queries and HTTP integration surfaces
- test(integration): cover typed DTO, deep expansion, and navigation governance end to end
- test(mapping): cover AutoMapper-style mapping across EF Core and Dapper
- test: extend shared fixtures and models for typed DTO test coverage
- feat(samples): demo typed DTO queries in the sample WebApi
- feat(parsers): support 'as' select aliases and space-form sort directions
- feat(core): enforce public surface across sort, projection, keyset, and group builders
- feat(validation): enforce DTO public surface and expand-path governance
- feat(dapper): add typed DTO FlexQueryAsync overloads with surface-aware SQL generation
- feat(efcore): add typed DTO FlexQueryAsync overloads with grouped-query executor
- feat(serialization): shape QueryResult output to the selected DTO surface
- feat(core): add DTO projection builder and result-shape models for typed queries
- feat(mapping): add AutoMapper-style global mapping registry with TypeMap builder
- feat(core): add QuerySurface abstraction and unify field resolution through FieldResolver
- feat: remove CaseInsensitive option and all case-normalization wrappers
- feat(dapper): optimize Include materialization with direct projection path
- feat(dapper): strongly-type projected entities via DynamicTypeBuilder and resolve mapped property names in SQL output
- feat(dapper): apply JSON naming transformer to projected property names
- feat(validation): add rule requiring Include/Expand for navigation projections
- test: cover expand sort/take, paging defaults, cache keys, and projections
- test: cover split-query hydration, simple include streaming, and SQL builders
- feat(efcore): support sort/take in filtered include selectors
- feat(core): extend projection tree and metadata with Sort/Take
- feat(core): add Sort/Take to SelectionNode and propagate to cache keys
- feat(dapper): support expand sort/take in FlexQuery Dapper parameter parsing
- feat(dapper): implement split-query include hydration and simple include streaming
- test(expand): add integration and validation tests for expand/include pipeline
- fix(validation): reject expand when include list is empty or missing
- fix(efcore): merge expand configuration into include tree
- fix(dapper): exclude include-only joins from totalCount query
- test: update tests for renamed APIs and add principal key resolution tests
- fix: resolve principal key from entity mapping instead of hard-coded Id
- refactor: clean up FlexQuery.Dapper mapping API surface
- fix(expand): validate all expand nodes and handle empty includes
- fix(expand): enforce strict syntax in FQL expand parser
- fix(expand): normalize DSL expand parser to flat Path lists
- test(expand): add comprehensive test coverage for expand feature
- feat(expand): extend IncludeAccessValidationRule for expand paths
- feat(expand): add expand validation rules
- feat(expand): add DSL expand parser with nested block support
- feat(expand): add FQL expand parser with semicolon-separated options
- feat(expand): add ExpandAst model, normalizer, and core integration
- test(governance): switch GovernanceReviewChangesTests to shared models and add nested wildcard locking tests
- feat(aspnetcore): expose AllowedIncludes on FieldAccessAttribute and wire it in FieldAccessFilter
- feat(validation): enforce aggregate-select-without-groupby rule
- test(integration): update grouped query tests for strict sort validation
- test(validation): add unit tests for new GROUP BY validation rules
- refactor(validation): enforce grouped sort validation via ValidateOrThrow
- feat(validation): add GROUP BY projection, sort, and HAVING validation rules
- refactor(validation): improve governance configuration validation error messages
- fix(parsers): improve error position reporting for HAVING and FQL safety validator
- fix(parsers): report position of '*' token in HAVING aggregate field error
- feat(dsl): improve error message for reserved keywords used as unquoted values
- test(parsers): update exception message assertions for new standardized format
- feat(dsl): migrate DSL parsers to structured exception positions
- feat(fql): migrate FQL parsers to structured exception positions
- feat(parsers): add structured Position/Expected/Found to internal parser exceptions
- refactor(validation): improve validation error formatting and HAVING aggregate messaging
- feat(config): support per-request QuerySyntax and DisablePaging overrides
- feat(dsl): support AND/OR logical keywords in filter expressions
- fix(parser): correct OR logical operator in FqlHavingAstParser
- Merge branch 'main' of https://github.com/peterjohncasasola/FlexQuery.NET
- merge feature branch having-nested-condition to main branch (#12)
- Merge branch 'main' into feature/having-nested-condition
- docs(tests): clarify AllowedIncludes as validation-only and add regression tests
- fix(projection): preserve nested select aliases and allow mixed flat/nested syntax