Open Source · .NET 6 / 8 / 9

Dynamic Query Building
for .NET

Build powerful, type-safe dynamic queries with visual UI components for Blazor, ASP.NET Core, and WPF. Expression-tree based, extensible, and ready for production.

.NET 6.0 .NET 8.0 .NET 9.0 .NET Framework 4.8 Blazor ASP.NET Core WPF

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.

Blazor Server MudBlazor EF Core
Launch Demo

ASP.NET Core Demo

Server-side Razor Pages with Tag Helpers and View Components. No JavaScript required.

Razor Pages Tag Helpers Server-side
Launch Demo

Built 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.

NetQueryBuilder NuGet version

Core library with expression-tree based query building, extensible operators, and property path navigation.

dotnet add package NetQueryBuilder
NetQueryBuilder.EntityFramework NuGet version

Entity Framework Core integration with navigation property support and efficient SQL translation.

dotnet add package NetQueryBuilder.EntityFramework
NetQueryBuilder.Blazor NuGet version

MudBlazor-based UI components including query builder, condition editor, and dynamic result tables.

dotnet add package NetQueryBuilder.Blazor
NetQueryBuilder.AspNetCore NuGet version

ASP.NET Core Razor Pages integration with Tag Helpers, View Components, and session-based state management.

dotnet add package NetQueryBuilder.AspNetCore
NetQueryBuilder.WPF NuGet version

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
Get Started