Skip to content

Repository files navigation

FlexQuery.NET

Dynamic filtering, sorting, paging, and projection for IQueryable in .NET.

NuGet VersionNuGet Downloads.NETDocumentationLicense

FlexQuery.NET is a dynamic query engine for .NET REST APIs. It transforms complex query parameters into secure, server-side expression trees — filtering, sorting, paging, and projecting data with a single line of code.

varresult=await_context.Users.FlexQueryAsync(parameters, opts =>{opts.AllowedFields=["Id","Name","Email","Status"];});

Works with Entity Framework Core, Dapper, and other FlexQuery.NET providers.

Why FlexQuery.NET?

  • No OData Dependency — Get powerful querying without OData's complexity and tight coupling
  • 100% Server-Side — All operations translate to SQL via expression trees — zero client evaluation
  • Security First — Declare allowed/blocked fields per-endpoint with strict validation
  • Multi-Format — Auto-detects DSL, JSON, JQL, and OData query syntax on the same endpoint
  • Multiple Data Providers — Works with EF Core, Dapper, or any IQueryable source

Package Ecosystem

graph TD
Core["FlexQuery.NET"]
Core --> EF["FlexQuery.NET.EntityFrameworkCore"]
Core --> Dapper["FlexQuery.NET.Dapper"]
Core --> AspNet["FlexQuery.NET.AspNetCore"]
Core --> Diag["FlexQuery.NET.Diagnostics"]
EF --> AgGrid["FlexQuery.NET.Adapters.AgGrid"]
EF --> Kendo["FlexQuery.NET.Adapters.Kendo"]
Dapper --> AgGrid
Dapper --> Kendo
AspNet --> AgGrid
AspNet --> Kendo
Core --> Jql["FlexQuery.NET.Parsers.Jql"]
Core --> OData["FlexQuery.NET.Parsers.MiniOData"]
Loading
PackagePurpose
FlexQuery.NETCore query engine — parsing, filtering, sorting, paging, projection, validation
FlexQuery.NET.EntityFrameworkCoreAsync execution and filtered includes for EF Core
FlexQuery.NET.DapperSQL generation and execution for Dapper
FlexQuery.NET.AspNetCoreASP.NET Core integration with [FieldAccess] security attributes
FlexQuery.NET.DiagnosticsExecution diagnostics, timing, and observability
FlexQuery.NET.Adapters.AgGridAG Grid Server-Side Row Model (SSRM) request/response adapter
FlexQuery.NET.Adapters.KendoKendo UI DataSource request adapter
FlexQuery.NET.Parsers.JqlJQL (Jira Query Language) syntax parser
FlexQuery.NET.Parsers.MiniODataLightweight OData-compatible syntax parser

Supported Query Formats

GET /api/users?filter=age:gte:18&sort=name:asc&page=1&pageSize=20 # DSL (default)GET /api/users?filter=Age >= 18 AND Status = 'Active' # JQLGET /api/users?$filter=Age ge 18 and Status eq 'Active' # OData

Getting Started

dotnet add package FlexQuery.NET.EntityFrameworkCore

Full guide: flexquery.vercel.app/guide/getting-started

Documentation

License

MIT License. See LICENSE.

Releases

Packages

Contributors

Languages