Table of Contents

Class SqlQueryExpressionNodeExtensions

Namespace
LfrlAnvil.Sql.Expressions
Assembly
LfrlAnvil.Sql.Core.dll

Contains SqlQueryExpressionNode extension methods.

public static class SqlQueryExpressionNodeExtensions
Inheritance
SqlQueryExpressionNodeExtensions
Inherited Members

Methods

AndHaving<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, SqlConditionNode)

Decorates the provided SQL query node with an SqlAggregationFilterTraitNode with IsConjunction set to true.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> AndHaving<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, SqlConditionNode filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

AndHaving<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, SqlConditionNode>)

Decorates the provided SQL query node with an SqlAggregationFilterTraitNode with IsConjunction set to true.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> AndHaving<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, SqlConditionNode> filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

AndWhere<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, SqlConditionNode)

Decorates the provided SQL query node with an SqlFilterTraitNode with IsConjunction set to true.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> AndWhere<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, SqlConditionNode filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

AndWhere<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, SqlConditionNode>)

Decorates the provided SQL query node with an SqlFilterTraitNode with IsConjunction set to true.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> AndWhere<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, SqlConditionNode> filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

AsSet(SqlQueryExpressionNode, string)

Creates a new SqlQueryRecordSetNode instance.

[Pure]
public static SqlQueryRecordSetNode AsSet(this SqlQueryExpressionNode node, string alias)

Parameters

node SqlQueryExpressionNode

Underlying SqlQueryExpressionNode instance.

alias string

Alias of this record set.

Returns

SqlQueryRecordSetNode

New SqlQueryRecordSetNode instance.

CompoundWith(SqlQueryExpressionNode, params SqlCompoundQueryComponentNode[])

Creates a new SqlCompoundQueryExpressionNode instance.

[Pure]
public static SqlCompoundQueryExpressionNode CompoundWith(this SqlQueryExpressionNode node, params SqlCompoundQueryComponentNode[] followingQueries)

Parameters

node SqlQueryExpressionNode

First underlying query.

followingQueries SqlCompoundQueryComponentNode[]

Collection of queries that sequentially follow after the first query.

Returns

SqlCompoundQueryExpressionNode

New SqlCompoundQueryExpressionNode instance.

CompoundWith(SqlQueryExpressionNode, IEnumerable<SqlCompoundQueryComponentNode>)

Creates a new SqlCompoundQueryExpressionNode instance.

[Pure]
public static SqlCompoundQueryExpressionNode CompoundWith(this SqlQueryExpressionNode node, IEnumerable<SqlCompoundQueryComponentNode> followingQueries)

Parameters

node SqlQueryExpressionNode

First underlying query.

followingQueries IEnumerable<SqlCompoundQueryComponentNode>

Collection of queries that sequentially follow after the first query.

Returns

SqlCompoundQueryExpressionNode

New SqlCompoundQueryExpressionNode instance.

Distinct<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>)

Decorates the provided SQL query node with an SqlDistinctTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> Distinct<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

Exists(SqlQueryExpressionNode)

Creates a new SqlExistsConditionNode instance.

[Pure]
public static SqlExistsConditionNode Exists(this SqlQueryExpressionNode node)

Parameters

node SqlQueryExpressionNode

Sub-query to check.

Returns

SqlExistsConditionNode

New SqlExistsConditionNode instance.

GroupBy<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, params SqlExpressionNode[])

Decorates the provided SQL query node with an SqlAggregationTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> GroupBy<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, params SqlExpressionNode[] expressions) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

expressions SqlExpressionNode[]

Collection of expressions to aggregate by.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

GroupBy<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, IEnumerable<SqlExpressionNode>)

Decorates the provided SQL query node with an SqlAggregationTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> GroupBy<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, IEnumerable<SqlExpressionNode> expressions) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

expressions IEnumerable<SqlExpressionNode>

Collection of expressions to aggregate by.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

GroupBy<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, IEnumerable<SqlExpressionNode>>)

Decorates the provided SQL query node with an SqlAggregationTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> GroupBy<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, IEnumerable<SqlExpressionNode>> expressions) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

expressions Func<TDataSourceNode, IEnumerable<SqlExpressionNode>>

Provider of collection of expressions to aggregate by.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

Limit<TQueryExpressionNode>(TQueryExpressionNode, SqlExpressionNode)

Decorates the provided SQL query node with an SqlLimitTraitNode.

[Pure]
public static TQueryExpressionNode Limit<TQueryExpressionNode>(this TQueryExpressionNode node, SqlExpressionNode value) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

value SqlExpressionNode

Underlying value.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

NotExists(SqlQueryExpressionNode)

Creates a new negated SqlExistsConditionNode instance.

[Pure]
public static SqlExistsConditionNode NotExists(this SqlQueryExpressionNode node)

Parameters

node SqlQueryExpressionNode

Sub-query to check.

Returns

SqlExistsConditionNode

New negated SqlExistsConditionNode instance.

Offset<TQueryExpressionNode>(TQueryExpressionNode, SqlExpressionNode)

Decorates the provided SQL query node with an SqlOffsetTraitNode.

[Pure]
public static TQueryExpressionNode Offset<TQueryExpressionNode>(this TQueryExpressionNode node, SqlExpressionNode value) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

value SqlExpressionNode

Underlying value.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

OrHaving<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, SqlConditionNode)

Decorates the provided SQL query node with an SqlAggregationFilterTraitNode with IsConjunction set to false.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> OrHaving<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, SqlConditionNode filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

OrHaving<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, SqlConditionNode>)

Decorates the provided SQL query node with an SqlAggregationFilterTraitNode with IsConjunction set to false.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> OrHaving<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, SqlConditionNode> filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

OrWhere<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, SqlConditionNode)

Decorates the provided SQL query node with an SqlFilterTraitNode with IsConjunction set to false.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> OrWhere<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, SqlConditionNode filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

OrWhere<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, SqlConditionNode>)

Decorates the provided SQL query node with an SqlFilterTraitNode with IsConjunction set to false.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> OrWhere<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, SqlConditionNode> filter) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

OrderBy<TQueryExpressionNode>(TQueryExpressionNode, params SqlOrderByNode[])

Decorates the provided SQL query node with an SqlSortTraitNode.

[Pure]
public static TQueryExpressionNode OrderBy<TQueryExpressionNode>(this TQueryExpressionNode node, params SqlOrderByNode[] ordering) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

ordering SqlOrderByNode[]

Collection of ordering definitions.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

OrderBy<TQueryExpressionNode>(TQueryExpressionNode, IEnumerable<SqlOrderByNode>)

Decorates the provided SQL query node with an SqlSortTraitNode.

[Pure]
public static TQueryExpressionNode OrderBy<TQueryExpressionNode>(this TQueryExpressionNode node, IEnumerable<SqlOrderByNode> ordering) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

ordering IEnumerable<SqlOrderByNode>

Collection of ordering definitions.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

OrderBy<TQueryExpressionNode>(TQueryExpressionNode, Func<TQueryExpressionNode, IEnumerable<SqlOrderByNode>>)

Decorates the provided SQL query node with an SqlSortTraitNode.

[Pure]
public static TQueryExpressionNode OrderBy<TQueryExpressionNode>(this TQueryExpressionNode node, Func<TQueryExpressionNode, IEnumerable<SqlOrderByNode>> ordering) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

ordering Func<TQueryExpressionNode, IEnumerable<SqlOrderByNode>>

Provider of collection of ordering definitions.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

Select<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, IEnumerable<SqlSelectNode>)

Creates a new SQL data source query expression node with added selection.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> Select<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, IEnumerable<SqlSelectNode> selection) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Source query.

selection IEnumerable<SqlSelectNode>

Collection of expressions to add to Selection.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

New SQL data source query expression node.

Type Parameters

TDataSourceNode

Select<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, IEnumerable<SqlSelectNode>>)

Creates a new SQL data source query expression node with added selection.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> Select<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, IEnumerable<SqlSelectNode>> selector) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Source query.

selector Func<TDataSourceNode, IEnumerable<SqlSelectNode>>

Provider of collection of expressions to add to Selection.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

New SQL data source query expression node.

Type Parameters

TDataSourceNode

ToCompound(SqlQueryExpressionNode, SqlCompoundQueryOperator)

Creates a new SqlCompoundQueryComponentNode instance.

[Pure]
public static SqlCompoundQueryComponentNode ToCompound(this SqlQueryExpressionNode node, SqlCompoundQueryOperator @operator)

Parameters

node SqlQueryExpressionNode

Underlying query.

operator SqlCompoundQueryOperator

Compound query operator with which this query should be included.

Returns

SqlCompoundQueryComponentNode

New SqlCompoundQueryComponentNode instance.

ToCreateView(SqlQueryExpressionNode, SqlRecordSetInfo, bool)

Creates a new SqlCreateViewNode instance.

[Pure]
public static SqlCreateViewNode ToCreateView(this SqlQueryExpressionNode node, SqlRecordSetInfo view, bool replaceIfExists = false)

Parameters

node SqlQueryExpressionNode

Underlying source query expression that defines this view.

view SqlRecordSetInfo

View's name.

replaceIfExists bool

Specifies whether or not the view should be replaced if it already exists in DB. Equal to false by default.

Returns

SqlCreateViewNode

New SqlCreateViewNode instance.

ToCte(SqlQueryExpressionNode, string)

Creates a new SqlOrdinalCommonTableExpressionNode instance.

[Pure]
public static SqlOrdinalCommonTableExpressionNode ToCte(this SqlQueryExpressionNode query, string name)

Parameters

query SqlQueryExpressionNode

Underlying query that defines this common table expression.

name string

Name of this common table expression.

Returns

SqlOrdinalCommonTableExpressionNode

New SqlOrdinalCommonTableExpressionNode instance.

ToExcept(SqlQueryExpressionNode)

Creates a new SqlCompoundQueryComponentNode instance with Except operator.

[Pure]
public static SqlCompoundQueryComponentNode ToExcept(this SqlQueryExpressionNode node)

Parameters

node SqlQueryExpressionNode

Underlying query.

Returns

SqlCompoundQueryComponentNode

New SqlCompoundQueryComponentNode instance.

ToInsertInto(SqlQueryExpressionNode, SqlRecordSetNode, params SqlDataFieldNode[])

Creates a new SqlInsertIntoNode instance.

[Pure]
public static SqlInsertIntoNode ToInsertInto(this SqlQueryExpressionNode node, SqlRecordSetNode recordSet, params SqlDataFieldNode[] dataFields)

Parameters

node SqlQueryExpressionNode

SqlQueryExpressionNode source of records to be inserted.

recordSet SqlRecordSetNode

Table to insert into.

dataFields SqlDataFieldNode[]

Collection of record set data fields that this insertion refers to.

Returns

SqlInsertIntoNode

New SqlInsertIntoNode instance.

ToInsertInto<TRecordSetNode>(SqlQueryExpressionNode, TRecordSetNode, Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>)

Creates a new SqlInsertIntoNode instance.

[Pure]
public static SqlInsertIntoNode ToInsertInto<TRecordSetNode>(this SqlQueryExpressionNode node, TRecordSetNode recordSet, Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>> dataFields) where TRecordSetNode : SqlRecordSetNode

Parameters

node SqlQueryExpressionNode

SqlQueryExpressionNode source of records to be inserted.

recordSet TRecordSetNode

Table to insert into.

dataFields Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>

Provider of collection of record set data fields that this insertion refers to.

Returns

SqlInsertIntoNode

New SqlInsertIntoNode instance.

Type Parameters

TRecordSetNode

ToIntersect(SqlQueryExpressionNode)

Creates a new SqlCompoundQueryComponentNode instance with Intersect operator.

[Pure]
public static SqlCompoundQueryComponentNode ToIntersect(this SqlQueryExpressionNode node)

Parameters

node SqlQueryExpressionNode

Underlying query.

Returns

SqlCompoundQueryComponentNode

New SqlCompoundQueryComponentNode instance.

ToRecursive(SqlOrdinalCommonTableExpressionNode, params SqlCompoundQueryComponentNode[])

Creates a new SqlRecursiveCommonTableExpressionNode instance.

[Pure]
public static SqlRecursiveCommonTableExpressionNode ToRecursive(this SqlOrdinalCommonTableExpressionNode node, params SqlCompoundQueryComponentNode[] components)

Parameters

node SqlOrdinalCommonTableExpressionNode

Ordinal common table expression that defines the non-recursive portion of the recursive common table expression.

components SqlCompoundQueryComponentNode[]

Collection of recursive queries that sequentially follow after the first non-recursive query defined by the ordinal common table expression.

Returns

SqlRecursiveCommonTableExpressionNode

New SqlRecursiveCommonTableExpressionNode instance.

ToRecursive(SqlOrdinalCommonTableExpressionNode, IEnumerable<SqlCompoundQueryComponentNode>)

Creates a new SqlRecursiveCommonTableExpressionNode instance.

[Pure]
public static SqlRecursiveCommonTableExpressionNode ToRecursive(this SqlOrdinalCommonTableExpressionNode node, IEnumerable<SqlCompoundQueryComponentNode> components)

Parameters

node SqlOrdinalCommonTableExpressionNode

Ordinal common table expression that defines the non-recursive portion of the recursive common table expression.

components IEnumerable<SqlCompoundQueryComponentNode>

Collection of recursive queries that sequentially follow after the first non-recursive query defined by the ordinal common table expression.

Returns

SqlRecursiveCommonTableExpressionNode

New SqlRecursiveCommonTableExpressionNode instance.

ToRecursive(SqlOrdinalCommonTableExpressionNode, Func<SqlCommonTableExpressionRecordSetNode, IEnumerable<SqlCompoundQueryComponentNode>>)

Creates a new SqlRecursiveCommonTableExpressionNode instance.

[Pure]
public static SqlRecursiveCommonTableExpressionNode ToRecursive(this SqlOrdinalCommonTableExpressionNode node, Func<SqlCommonTableExpressionRecordSetNode, IEnumerable<SqlCompoundQueryComponentNode>> components)

Parameters

node SqlOrdinalCommonTableExpressionNode

Ordinal common table expression that defines the non-recursive portion of the recursive common table expression.

components Func<SqlCommonTableExpressionRecordSetNode, IEnumerable<SqlCompoundQueryComponentNode>>

Provider of collection of recursive queries that sequentially follow after the first non-recursive query defined by the ordinal common table expression.

Returns

SqlRecursiveCommonTableExpressionNode

New SqlRecursiveCommonTableExpressionNode instance.

ToRecursiveCte(SqlCompoundQueryExpressionNode, string)

Creates a new SqlRecursiveCommonTableExpressionNode instance.

[Pure]
public static SqlRecursiveCommonTableExpressionNode ToRecursiveCte(this SqlCompoundQueryExpressionNode query, string name)

Parameters

query SqlCompoundQueryExpressionNode

Underlying query that defines this common table expression.

name string

Name of this common table expression.

Returns

SqlRecursiveCommonTableExpressionNode

New SqlRecursiveCommonTableExpressionNode instance.

ToUnion(SqlQueryExpressionNode)

Creates a new SqlCompoundQueryComponentNode instance with Union operator.

[Pure]
public static SqlCompoundQueryComponentNode ToUnion(this SqlQueryExpressionNode node)

Parameters

node SqlQueryExpressionNode

Underlying query.

Returns

SqlCompoundQueryComponentNode

New SqlCompoundQueryComponentNode instance.

ToUnionAll(SqlQueryExpressionNode)

Creates a new SqlCompoundQueryComponentNode instance with UnionAll operator.

[Pure]
public static SqlCompoundQueryComponentNode ToUnionAll(this SqlQueryExpressionNode node)

Parameters

node SqlQueryExpressionNode

Underlying query.

Returns

SqlCompoundQueryComponentNode

New SqlCompoundQueryComponentNode instance.

ToUpsert(SqlQueryExpressionNode, SqlRecordSetNode, ReadOnlyArray<SqlDataFieldNode>, Func<SqlRecordSetNode, SqlInternalRecordSetNode, IEnumerable<SqlValueAssignmentNode>>, ReadOnlyArray<SqlDataFieldNode>?)

Creates a new SqlUpsertNode instance.

[Pure]
public static SqlUpsertNode ToUpsert(this SqlQueryExpressionNode node, SqlRecordSetNode recordSet, ReadOnlyArray<SqlDataFieldNode> insertDataFields, Func<SqlRecordSetNode, SqlInternalRecordSetNode, IEnumerable<SqlValueAssignmentNode>> updateAssignments, ReadOnlyArray<SqlDataFieldNode>? conflictTarget = null)

Parameters

node SqlQueryExpressionNode

SqlQueryExpressionNode source of records to be inserted or updated.

recordSet SqlRecordSetNode

Table to upsert into.

insertDataFields ReadOnlyArray<SqlDataFieldNode>

Collection of record set data fields that the insertion part of this upsert refers to.

updateAssignments Func<SqlRecordSetNode, SqlInternalRecordSetNode, IEnumerable<SqlValueAssignmentNode>>

Provider of a collection of value assignments that the update part of this upsert refers to. The first parameter is the table to upsert into and the second parameter is the UpdateSource of the created upsert node.

conflictTarget ReadOnlyArray<SqlDataFieldNode>?

Optional collection of data fields from the table that define the insertion conflict target. Empty conflict target may cause the table's primary key to be used instead. Equal to null by default.

Returns

SqlUpsertNode

New SqlUpsertNode instance.

ToUpsert<TRecordSetNode>(SqlQueryExpressionNode, TRecordSetNode, Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>, Func<TRecordSetNode, SqlInternalRecordSetNode, IEnumerable<SqlValueAssignmentNode>>, Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>?)

Creates a new SqlUpsertNode instance.

[Pure]
public static SqlUpsertNode ToUpsert<TRecordSetNode>(this SqlQueryExpressionNode node, TRecordSetNode recordSet, Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>> insertDataFields, Func<TRecordSetNode, SqlInternalRecordSetNode, IEnumerable<SqlValueAssignmentNode>> updateAssignments, Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>? conflictTarget = null) where TRecordSetNode : SqlRecordSetNode

Parameters

node SqlQueryExpressionNode

SqlQueryExpressionNode source of records to be inserted or updated.

recordSet TRecordSetNode

Table to upsert into.

insertDataFields Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>

Provider of collection of record set data fields that the insertion part of this upsert refers to.

updateAssignments Func<TRecordSetNode, SqlInternalRecordSetNode, IEnumerable<SqlValueAssignmentNode>>

Provider of a collection of value assignments that the update part of this upsert refers to. The first parameter is the table to upsert into and the second parameter is the UpdateSource of the created upsert node.

conflictTarget Func<TRecordSetNode, IEnumerable<SqlDataFieldNode>>

Optional provider of collection of data fields from the table that define the insertion conflict target. Empty conflict target may cause the table's primary key to be used instead. Equal to null by default.

Returns

SqlUpsertNode

New SqlUpsertNode instance.

Type Parameters

TRecordSetNode

Window<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, params SqlWindowDefinitionNode[])

Decorates the provided SQL query node with an SqlWindowDefinitionTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> Window<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, params SqlWindowDefinitionNode[] windows) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

windows SqlWindowDefinitionNode[]

Collection of window definitions.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

Window<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, IEnumerable<SqlWindowDefinitionNode>)

Decorates the provided SQL query node with an SqlWindowDefinitionTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> Window<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, IEnumerable<SqlWindowDefinitionNode> windows) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

windows IEnumerable<SqlWindowDefinitionNode>

Collection of window definitions.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

Window<TDataSourceNode>(SqlDataSourceQueryExpressionNode<TDataSourceNode>, Func<TDataSourceNode, IEnumerable<SqlWindowDefinitionNode>>)

Decorates the provided SQL query node with an SqlWindowDefinitionTraitNode.

[Pure]
public static SqlDataSourceQueryExpressionNode<TDataSourceNode> Window<TDataSourceNode>(this SqlDataSourceQueryExpressionNode<TDataSourceNode> node, Func<TDataSourceNode, IEnumerable<SqlWindowDefinitionNode>> windows) where TDataSourceNode : SqlDataSourceNode

Parameters

node SqlDataSourceQueryExpressionNode<TDataSourceNode>

Query node to decorate.

windows Func<TDataSourceNode, IEnumerable<SqlWindowDefinitionNode>>

Provider of collection of window definitions.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

Decorated SQL query node.

Type Parameters

TDataSourceNode

SQL data source node type.

With<TQueryExpressionNode>(TQueryExpressionNode, params SqlCommonTableExpressionNode[])

Decorates the provided SQL query node with an SqlCommonTableExpressionTraitNode.

[Pure]
public static TQueryExpressionNode With<TQueryExpressionNode>(this TQueryExpressionNode node, params SqlCommonTableExpressionNode[] commonTableExpressions) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

commonTableExpressions SqlCommonTableExpressionNode[]

Collection of common table expressions.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

With<TQueryExpressionNode>(TQueryExpressionNode, IEnumerable<SqlCommonTableExpressionNode>)

Decorates the provided SQL query node with an SqlCommonTableExpressionTraitNode.

[Pure]
public static TQueryExpressionNode With<TQueryExpressionNode>(this TQueryExpressionNode node, IEnumerable<SqlCommonTableExpressionNode> commonTableExpressions) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

commonTableExpressions IEnumerable<SqlCommonTableExpressionNode>

Collection of common table expressions.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.

With<TQueryExpressionNode>(TQueryExpressionNode, Func<TQueryExpressionNode, IEnumerable<SqlCommonTableExpressionNode>>)

Decorates the provided SQL query node with an SqlCommonTableExpressionTraitNode.

[Pure]
public static TQueryExpressionNode With<TQueryExpressionNode>(this TQueryExpressionNode node, Func<TQueryExpressionNode, IEnumerable<SqlCommonTableExpressionNode>> commonTableExpressions) where TQueryExpressionNode : SqlExtendableQueryExpressionNode

Parameters

node TQueryExpressionNode

Query node to decorate.

commonTableExpressions Func<TQueryExpressionNode, IEnumerable<SqlCommonTableExpressionNode>>

Provider of collection of common table expressions.

Returns

TQueryExpressionNode

Decorated SQL query node.

Type Parameters

TQueryExpressionNode

SQL query node type.