eQuantic.Linq.Specification
3.7.1
dotnet add package eQuantic.Linq.Specification --version 3.7.1
NuGet\Install-Package eQuantic.Linq.Specification -Version 3.7.1
<PackageReference Include="eQuantic.Linq.Specification" Version="3.7.1" />
<PackageVersion Include="eQuantic.Linq.Specification" Version="3.7.1" />
<PackageReference Include="eQuantic.Linq.Specification" />
paket add eQuantic.Linq.Specification --version 3.7.1
#r "nuget: eQuantic.Linq.Specification, 3.7.1"
#:package eQuantic.Linq.Specification@3.7.1
#addin nuget:?package=eQuantic.Linq.Specification&version=3.7.1
#tool nuget:?package=eQuantic.Linq.Specification&version=3.7.1
eQuantic.Linq.Specification
The classic specification pattern, rebuilt on the eQuantic.Linq.Expressions engine: composable, provider-friendly predicates with operator overloads.
using eQuantic.Linq.Specification;
var paid = new DirectSpecification<Order>(o => o.Status == OrderStatus.Paid);
var big = new DirectSpecification<Order>(o => o.Total > 100m);
var recent = new DirectSpecification<Order>(o => o.CreatedAt > cutoff);
var spec = (paid & big) | !recent; // operator overloads
var alt = paid.AndAlso(big).OrNot(recent); // fluent equivalents
var results = orders.Where(spec.SatisfiedBy());
DirectSpecification,TrueSpecification,And/AndAlso,Or/OrElse,Not— parameters are rebound (noInvoke), so composed expressions stay translatable by LINQ providers such as EF.- Composition is powered by the engine's
PredicateExtensions(eQuantic.Linq.Expressions), which offers the sameAndAlso/OrElse/Notdirectly overExpression<Func<T, bool>>when you don't need the pattern.
Specifications from serialized payloads
ExpressionModelSpecification<T> turns a serialized expression — an ExpressionModel<T> or its raw
JSON, received from another service, a queue or an API client — into a composable specification:
// payload received over the wire (lean, hand-writable format)
var spec = new ExpressionModelSpecification<Order>(json);
var query = orders.Where((spec & onlyActive).SatisfiedBy());
Everything the engine offers applies: root-anchored type inference, strict type-resolution policies
for untrusted payloads (ExpressionSerializer.CreateSecure) and DTO→entity casting via a
customized ExpressionSerializer. The parsed filter stays available as spec.Model for onward
transport.
Learn more
ASP.NET Core & Specifications guide · all guides
MIT © eQuantic Tech
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 is compatible. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- eQuantic.Linq.Expressions (>= 3.7.1)
-
net10.0
- eQuantic.Linq.Expressions (>= 3.7.1)
-
net8.0
- eQuantic.Linq.Expressions (>= 3.7.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on eQuantic.Linq.Specification:
| Package | Downloads |
|---|---|
|
eQuantic.Core.Data
eQuantic Core Data Class Library |
|
|
eQuantic.Linq
The eQuantic.Linq engine as a single reference: a meta-package that brings in eQuantic.Linq.Expressions (expression ⇄ JSON serialization, inference, casting), eQuantic.Linq.Web (query-string syntax and typed builders) and eQuantic.Linq.Specification (the specification pattern). Framework-free core — the ASP.NET Core / Swagger / OpenAPI integrations remain opt-in packages. |
|
|
eQuantic.Linq.Web.Specification
Query-string specifications for eQuantic.Linq: build composable, reusable specifications directly from REST filter query strings (property:op(value), and/or/not, any/all, aggregates) via eQuantic.Linq.Web. |
GitHub repositories
This package is not used by any popular GitHub repositories.
First preview: the classic eQuantic specification pattern rebuilt on the v3 engine, including ExpressionModelSpecification for serialized expression payloads.