Expresso.Rendering.EntityFrameworkCore 0.12.1

dotnet add package Expresso.Rendering.EntityFrameworkCore --version 0.12.1
                    
NuGet\Install-Package Expresso.Rendering.EntityFrameworkCore -Version 0.12.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Expresso.Rendering.EntityFrameworkCore" Version="0.12.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Expresso.Rendering.EntityFrameworkCore" Version="0.12.1" />
                    
Directory.Packages.props
<PackageReference Include="Expresso.Rendering.EntityFrameworkCore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Expresso.Rendering.EntityFrameworkCore --version 0.12.1
                    
#r "nuget: Expresso.Rendering.EntityFrameworkCore, 0.12.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Expresso.Rendering.EntityFrameworkCore@0.12.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Expresso.Rendering.EntityFrameworkCore&version=0.12.1
                    
Install as a Cake Addin
#tool nuget:?package=Expresso.Rendering.EntityFrameworkCore&version=0.12.1
                    
Install as a Cake Tool

Expresso

GitHub repository

Expresso is a .NET library for dynamic filtering and sorting. It parses a function-call query string into a validated expression tree, then renders the tree as parameterized SQL or as LINQ. It replaces hand-written WHERE and ORDER BY string concatenation, and piles of optional Where clauses, with one tested pipeline.

Query string → Expresso.Parsing → expression tree (Expresso.Core) ─┬→ SQL renderer (one per dialect) → SQL + parameters
                                                                   └→ LINQ renderer (Linq, EF Core, EF6) → predicate + sort keys

Target frameworks: netstandard2.0 and net6.0 for the core, parsing, SQL and LINQ packages (usable from .NET Framework 4.6.1+, .NET Standard 2.0 libraries and .NET 6+). The EF Core package targets net8.0, and the EF6 package targets net48. License: MIT.

Example

A client sends a filter and a sort:

gt(createdAt,"2021-01-01")
createdAt,desc,name,asc

With a field map that sends createdAt to p.created_at and the parameter prefix wparam, each SQL renderer produces the same condition in its own dialect:

Dialect Rendered filter
SQL Server ([p].[created_at] > @wparam_0)
PostgreSQL ("p"."created_at" > @wparam_0)
MySQL, MariaDB (`p`.`created_at` > @wparam_0)
Oracle ("p"."created_at" > :wparam_0)

The LINQ renderers produce a lambda instead, which EF Core or EF6 translates to SQL:

e => e.CreatedAt > p0

The grammar, literal rules and supported types are in Query syntax.

Packages

Package Role
Expresso.Core Expression tree, filter, sort, and paging models, field-catalog contract
Expresso.Parsing Filter, sort, and paging text parsers and dependency injection
Expresso.Rendering.Common Shared SQL rendering contract
Expresso.Rendering.SqlServer, PostgreSql, Sqlite, MySql, Oracle, Db2 Filter, sort, and paging clause rendering for one dialect
Expresso.Rendering.Linq LINQ filtering, sorting, and result limits for IQueryable<T> and in-memory collections
Expresso.Rendering.EntityFrameworkCore EF Core 8+ overrides, IncludeSorted, and provider-aware paging
Expresso.Rendering.EntityFramework EF6 overrides and provider-aware paging

There is no metapackage: reference the packages you need. Database drivers and native clients are not included (DB2 needs IBM's clidriver on the host). See Packages.

Documentation

New to Expresso? Start with the overview, then Get started.

Samples

The ADO pair shares samples/Expresso.Sample.Shared. The EF pair is standalone (same routes and ExpressoSample:Engine, no Shared reference). Schema and seed: samples/database. See Sample app.

Build from source

dotnet test .\Expresso.slnx -c Release -f net6.0 --filter "Category!=Integration"
dotnet test .\Expresso.slnx -c Release -f net48 --filter "Category!=Integration"    # Windows; validates .NET Framework consumers
dotnet pack .\Expresso.slnx -c Release -o .\artifacts

Tests that need a running database engine skip unless EXPRESSO_IT=1. See test/Rendering/Expresso.Rendering.Integration.Test/README.md.

Product Compatible and additional computed target framework versions.
.NET 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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.12.1 40 10/9/2026
0.11.0 44 10/8/2026
0.10.0 43 10/7/2026