Table of Contents

Namespace JsonApiDotNetCore.Queries.Expressions

Classes

AnyExpression

This expression allows to test if an attribute value equals any of the specified constants. It represents the "any" filter function, resulting from text such as: any(owner.name,'Jack','Joe','John') .

ComparisonExpression

This expression allows to compare two operands using a comparison operator. It represents comparison filter functions, resulting from text such as: equals(name,'Joe') , equals(owner,null) , or: greaterOrEqual(count(upVotes),count(downVotes),'1') .

CountExpression

This expression allows to determine the number of related resources in a to-many relationship. It represents the "count" function, resulting from text such as: count(articles) .

FilterExpression

Represents the base type for filter functions that return a boolean value.

FunctionExpression

Represents the base type for functions that return a value.

HasExpression

This expression allows to test if a to-many relationship has related resources, optionally with a condition. It represents the "has" filter function, resulting from text such as: has(articles) , or: has(articles,equals(isHidden,'false')) .

IdentifierExpression

Represents the base type for an identifier, such as a JSON:API attribute/relationship name, a constant value between quotes, or null.

IncludeElementExpression

Represents an element in an IncludeExpression tree, resulting from text such as: articles.revisions .

IncludeExpression

Represents an inclusion tree, resulting from text such as: owner,articles.revisions .

IsTypeExpression

This expression allows to test if a resource in an inheritance hierarchy can be upcast to a derived type, optionally with a condition where the derived type is accessible. It represents the "isType" filter function, resulting from text such as: isType(,men) , isType(creator,men) , or: isType(creator,men,equals(hasBeard,'true')) .

LiteralConstantExpression

Represents a non-null constant value, resulting from text such as: 'Jack', '123', or: 'true'.

LogicalExpression

This expression allows to test whether one or all of its boolean operands are true. It represents the logical AND/OR filter functions, resulting from text such as: and(equals(title,'Work'),has(articles)) , or: or(equals(title,'Work'),has(articles)) .

MatchTextExpression

This expression allows partial matching on the value of a JSON:API attribute. It represents text-matching filter functions, resulting from text such as: startsWith(name,'The') , endsWith(name,'end.') , or: contains(name,'middle') .

NotExpression

This expression allows to test for the logical negation of its operand. It represents the "not" filter function, resulting from text such as: not(equals(title,'Work')) .

NullConstantExpression

Represents the constant null, resulting from the text: null.

PaginationElementQueryStringValueExpression

Represents an element in PaginationQueryStringValueExpression, resulting from text such as: 1, or: articles:2 .

PaginationExpression

Represents a pagination, produced from PaginationQueryStringValueExpression.

PaginationQueryStringValueExpression

Represents pagination in a query string, resulting from text such as: 1,articles:2 .

QueryExpression

Represents the base data structure for immutable types that query string parameters are converted into. This intermediate structure is later transformed into System.Linq Expression trees that are handled by Entity Framework Core.

QueryExpressionRewriter<TArgument>

Building block for rewriting QueryExpression trees. It walks through nested expressions and updates the parent on changes.

QueryExpressionVisitor<TArgument, TResult>

Implements the visitor design pattern that enables traversing a QueryExpression tree.

QueryStringParameterScopeExpression

Represents the relationship scope of a query string parameter, resulting from text such as: ?sort[articles] , or: ?filter[author.articles.comments] .

QueryableHandlerExpression

Holds an IQueryable<T> expression, used for custom query string handlers from IResourceDefinition<TResource, TId>s.

ResourceFieldChainExpression

Represents a chain of JSON:API fields (relationships and attributes), resulting from text such as: articles.revisions.author , or: owner.LastName .

SortElementExpression

Represents an element in SortExpression, resulting from text such as: lastName, -lastModifiedAt , or: count(children) .

SortExpression

Represents a sorting, resulting from text such as: lastName,-lastModifiedAt,count(children) .

SparseFieldSetExpression

Represents a sparse fieldset, resulting from text such as: firstName,lastName,articles .

SparseFieldSetExpressionExtensions
SparseFieldTableExpression

Represents a lookup table of sparse fieldsets per resource type.

Enums

ComparisonOperator
LogicalOperator
TextMatchKind