Live Demos
See NetQueryBuilder in action with our interactive demo applications.
Blazor Interactive Demo
Full-featured query builder with MudBlazor components, real-time expression preview, and result tables.
Launch DemoASP.NET Core Demo
Server-side Razor Pages with Tag Helpers and View Components. No JavaScript required.
Launch DemoBuilt for Modern .NET
Everything you need to add dynamic query capabilities to your applications.
Visual Query Builder
Drag-and-drop query building with intuitive UI components. Users can construct complex queries without writing code.
Type-Safe Expressions
Built on System.Linq.Expressions for compile-time safety. Property paths are validated and operators are strongly typed.
Multi-Framework
Targets .NET 6.0, 8.0, 9.0, .NET Standard 2.1, and .NET Framework 4.8. One library, every platform.
Extensible Operators
Built-in operators for Equals, Contains, Like, Between, In, and more. Create custom operators for domain-specific logic.
Rich UI Components
Pre-built components for Blazor (MudBlazor), ASP.NET Core (Tag Helpers), and WPF. Drop-in ready.
EF Core Integration
Seamless Entity Framework Core integration with full support for navigation properties, eager loading, and SQL translation.
Simple, Powerful API
From basic queries to custom operators, NetQueryBuilder keeps your code clean and expressive.
// Configure and build a query var configurator = services.GetService<IQueryConfigurator>(); var query = configurator.BuildFor<Customer>(); // Add conditions using the fluent API query.Condition.CreateNew<EqualsOperator>("Status", "Active") .And.CreateNew<GreaterThanOperator>("OrderCount", 5); // Execute against your data source var results = await executor.ExecuteAsync(query);
@inject IQueryConfigurator Configurator <QueryBuilderContainer Configurator="@Configurator"> <QueryBuilder T="Customer" OnQueryExecuted="@HandleResults" /> </QueryBuilderContainer> @code { private void HandleResults(QueryResult<Customer> result) { // Process query results } }
<!-- Razor Page with Tag Helpers --> <form method="post"> <nqb-entity-selector session-id="@Model.SessionId" /> <nqb-property-selector session-id="@Model.SessionId" /> <nqb-condition-builder session-id="@Model.SessionId" /> <button type="submit" formaction="?handler=ExecuteQuery"> Run Query </button> </form>
public class CustomOperator : IOperator { public Expression BuildExpression( MemberExpression property, ConstantExpression value) { // Build custom expression tree return Expression.Call( property, typeof(string).GetMethod("StartsWith"), value); } public string Stringify( string property, object value) { return $"{property} starts with '{value}'"; } }
NuGet Packages
Modular ecosystem — install only what you need.
Core library with expression-tree based query building, extensible operators, and property path navigation.
dotnet add package NetQueryBuilder
Entity Framework Core integration with navigation property support and efficient SQL translation.
dotnet add package NetQueryBuilder.EntityFramework
MudBlazor-based UI components including query builder, condition editor, and dynamic result tables.
dotnet add package NetQueryBuilder.Blazor
ASP.NET Core Razor Pages integration with Tag Helpers, View Components, and session-based state management.
dotnet add package NetQueryBuilder.AspNetCore
WPF controls for desktop applications with XAML-based query building interface.
dotnet add package NetQueryBuilder.WPF
Simple Pricing
Free for personal and open-source projects. One license for commercial use.
Open Source
Free
For personal, educational, and non-commercial use under the MIT license.
- All core packages
- Full source code access
- Community support
- GitHub Issues
Commercial License
Buy Once
For commercial applications and enterprise use. One-time purchase, unlimited use.
- Everything in Free
- Commercial use rights
- Priority support
- Premium extensions
- No attribution required