Table of Contents

Class SqlDataSourceNodeExtensions

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

Contains SqlDataSourceNode extension methods.

public static class SqlDataSourceNodeExtensions
Inheritance
SqlDataSourceNodeExtensions
Inherited Members

Methods

AndHaving<TDataSourceNode>(TDataSourceNode, SqlConditionNode)

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

AndWhere<TDataSourceNode>(TDataSourceNode, SqlConditionNode)

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

Distinct<TDataSourceNode>(TDataSourceNode)

Decorates the provided SQL data source node with an SqlDistinctTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

Exists(SqlDataSourceNode)

Creates a new SqlExistsConditionNode instance.

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

Parameters

node SqlDataSourceNode

Data source of the sub-query to check.

Returns

SqlExistsConditionNode

New SqlExistsConditionNode instance.

GetAll(SqlDataSourceNode)

Creates a new SqlSelectAllNode instance.

[Pure]
public static SqlSelectAllNode GetAll(this SqlDataSourceNode node)

Parameters

node SqlDataSourceNode

Data source to select all data fields from.

Returns

SqlSelectAllNode

New SqlSelectAllNode instance.

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

Decorates the provided SQL data source node with an SqlAggregationTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

expressions SqlExpressionNode[]

Collection of expressions to aggregate by.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlAggregationTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

expressions IEnumerable<SqlExpressionNode>

Collection of expressions to aggregate by.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlAggregationTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

expressions Func<TDataSourceNode, IEnumerable<SqlExpressionNode>>

Provider of collection of expressions to aggregate by.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

Limit<TDataSourceNode>(TDataSourceNode, SqlExpressionNode)

Decorates the provided SQL data source node with an SqlLimitTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

value SqlExpressionNode

Underlying value.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

NotExists(SqlDataSourceNode)

Creates a new negated SqlExistsConditionNode instance.

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

Parameters

node SqlDataSourceNode

Data source of the sub-query to check.

Returns

SqlExistsConditionNode

New negated SqlExistsConditionNode instance.

Offset<TDataSourceNode>(TDataSourceNode, SqlExpressionNode)

Decorates the provided SQL data source node with an SqlOffsetTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

value SqlExpressionNode

Underlying value.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

OrHaving<TDataSourceNode>(TDataSourceNode, SqlConditionNode)

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

OrWhere<TDataSourceNode>(TDataSourceNode, SqlConditionNode)

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter SqlConditionNode

Underlying predicate.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

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

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

Parameters

node TDataSourceNode

Data source node to decorate.

filter Func<TDataSourceNode, SqlConditionNode>

Underlying predicate provider.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlSortTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

ordering SqlOrderByNode[]

Collection of ordering definitions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlSortTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

ordering IEnumerable<SqlOrderByNode>

Collection of ordering definitions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlSortTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

ordering Func<TDataSourceNode, IEnumerable<SqlOrderByNode>>

Provider of collection of ordering definitions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

Select<TDataSourceNode>(TDataSourceNode, params SqlSelectNode[])

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

Parameters

node TDataSourceNode

Underlying data source.

selection SqlSelectNode[]

Collection of expressions to include in this query's selection.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

New SqlDataSourceQueryExpressionNode<TDataSourceNode> instance.

Type Parameters

TDataSourceNode

SQL data source node type.

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

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

Parameters

node TDataSourceNode

Underlying data source.

selection IEnumerable<SqlSelectNode>

Collection of expressions to include in this query's selection.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

New SqlDataSourceQueryExpressionNode<TDataSourceNode> instance.

Type Parameters

TDataSourceNode

SQL data source node type.

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

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

Parameters

node TDataSourceNode

Underlying data source.

selector Func<TDataSourceNode, IEnumerable<SqlSelectNode>>

Provider of collection of expressions to include in this query's selection.

Returns

SqlDataSourceQueryExpressionNode<TDataSourceNode>

New SqlDataSourceQueryExpressionNode<TDataSourceNode> instance.

Type Parameters

TDataSourceNode

SQL data source node type.

ToDeleteFrom(SqlDataSourceNode)

Creates a new SqlDeleteFromNode instance.

[Pure]
public static SqlDeleteFromNode ToDeleteFrom(this SqlDataSourceNode node)

Parameters

node SqlDataSourceNode

Data source that defines records to be deleted.

Returns

SqlDeleteFromNode

New SqlDeleteFromNode instance.

ToUpdate(SqlDataSourceNode, params SqlValueAssignmentNode[])

Creates a new SqlUpdateNode instance.

[Pure]
public static SqlUpdateNode ToUpdate(this SqlDataSourceNode node, params SqlValueAssignmentNode[] assignments)

Parameters

node SqlDataSourceNode

Data source that defines records to be updated.

assignments SqlValueAssignmentNode[]

Collection of value assignments that this update refers to.

Returns

SqlUpdateNode

New SqlUpdateNode instance.

ToUpdate<TDataSourceNode>(TDataSourceNode, Func<TDataSourceNode, IEnumerable<SqlValueAssignmentNode>>)

Creates a new SqlUpdateNode instance.

[Pure]
public static SqlUpdateNode ToUpdate<TDataSourceNode>(this TDataSourceNode node, Func<TDataSourceNode, IEnumerable<SqlValueAssignmentNode>> assignments) where TDataSourceNode : SqlDataSourceNode

Parameters

node TDataSourceNode

Data source that defines records to be updated.

assignments Func<TDataSourceNode, IEnumerable<SqlValueAssignmentNode>>

Provider of collection of value assignments that this update refers to.

Returns

SqlUpdateNode

New SqlUpdateNode instance.

Type Parameters

TDataSourceNode

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

Decorates the provided SQL data source node with an SqlWindowDefinitionTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

windows SqlWindowDefinitionNode[]

Collection of window definitions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlWindowDefinitionTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

windows IEnumerable<SqlWindowDefinitionNode>

Collection of window definitions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlWindowDefinitionTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

windows Func<TDataSourceNode, IEnumerable<SqlWindowDefinitionNode>>

Provider of collection of window definitions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlCommonTableExpressionTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

commonTableExpressions SqlCommonTableExpressionNode[]

Collection of common table expressions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlCommonTableExpressionTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

commonTableExpressions IEnumerable<SqlCommonTableExpressionNode>

Collection of common table expressions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.

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

Decorates the provided SQL data source node with an SqlCommonTableExpressionTraitNode.

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

Parameters

node TDataSourceNode

Data source node to decorate.

commonTableExpressions Func<TDataSourceNode, IEnumerable<SqlCommonTableExpressionNode>>

Provider of collection of common table expressions.

Returns

TDataSourceNode

Decorated SQL data source node.

Type Parameters

TDataSourceNode

SQL data source node type.