dynamic-linq-query-builder
is a small library that allows any .Net
framework class collection to be filtered dynamically at runtime.
-
Generates an
IQueryable
from any collection and filter combination -
Capable of complex, grouped queries against as many fields as you want
-
Supports nested objects and collections via dot notation
-
Supports ORMs like
EF6
,EFCore
, andMongoDB Client >=2.19
-
Supports a number of operators for each type
- in
- not in
- equal
- not equal
- between
- not between
- less
- less or equal
- greater
- greater or equal
- begins with
- not begins with
- contains
- not contains
- ends with
- not ends with
- is empty
- is not empty
- is null
- is not null
- custom operators via interface and options
-
Compatible with jQuery QueryBuilder (see samples for an example)
-
Targets .NET 4.5, .NET Standard 2.0, and .NET 6
dynamic-linq-query-builder
can be installed via the nuget UI (as Castle.DynamicLinqQueryBuilder), or via the nuget package manager console:
PM> Install-Package Castle.DynamicLinqQueryBuilder
dynamic-linq-query-builder-system-text-json
can be installed via the nuget UI (as Castle.DynamicLinqQueryBuilder.SystemTextJson), or via the nuget package manager console:
PM> Install-Package Castle.DynamicLinqQueryBuilder.SystemTextJson
The easiest way to get started is to install the NuGet package and take a look at the MVC sample application included in the source code. It contains a working example of both dynamic-linq-query-builder
and jQuery-QueryBuilder
.
Additionally, see the Wiki
Contributions and pull requests are welcome with associated unit tests.