Table of Contents

Class SqlMultiDataSourceNode

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

Represents an SQL syntax tree node that defines a single data source from potentially many SqlRecordSetNode instances.

public class SqlMultiDataSourceNode : SqlDataSourceNode
Inheritance
SqlMultiDataSourceNode
Inherited Members
Extension Methods

Constructors

SqlMultiDataSourceNode(SqlMultiDataSourceNode, Chain<SqlTraitNode>)

Creates a new SqlMultiDataSourceNode instance.

protected SqlMultiDataSourceNode(SqlMultiDataSourceNode @base, Chain<SqlTraitNode> traits)

Parameters

base SqlMultiDataSourceNode

Source SqlMultiDataSourceNode instance.

traits Chain<SqlTraitNode>

Collection of decorating traits.

SqlMultiDataSourceNode(SqlRecordSetNode, SqlDataSourceJoinOnNode[])

Creates a new SqlMultiDataSourceNode instance.

protected SqlMultiDataSourceNode(SqlRecordSetNode from, SqlDataSourceJoinOnNode[] joins)

Parameters

from SqlRecordSetNode

First SqlRecordSetNode instance from which this data source's definition begins.

joins SqlDataSourceJoinOnNode[]

Sequential collection of all SqlDataSourceJoinOnNode instances that define this data source.

SqlMultiDataSourceNode(SqlRecordSetNode, SqlJoinDefinition[])

Creates a new SqlMultiDataSourceNode instance.

protected SqlMultiDataSourceNode(SqlRecordSetNode from, SqlJoinDefinition[] definitions)

Parameters

from SqlRecordSetNode

First SqlRecordSetNode instance from which this data source's definition begins.

definitions SqlJoinDefinition[]

Sequential collection of all SqlJoinDefinition instances that define this data source's Joins.

Properties

From

First SqlRecordSetNode instance from which this data source's definition begins.

public override sealed SqlRecordSetNode From { get; }

Property Value

SqlRecordSetNode

Joins

Sequential collection of all SqlDataSourceJoinOnNode instances that define this data source.

public override sealed ReadOnlyArray<SqlDataSourceJoinOnNode> Joins { get; }

Property Value

ReadOnlyArray<SqlDataSourceJoinOnNode>

RecordSets

Collection of all record sets contained by this data source.

public override sealed IReadOnlyCollection<SqlRecordSetNode> RecordSets { get; }

Property Value

IReadOnlyCollection<SqlRecordSetNode>

Methods

AddTrait(SqlTraitNode)

Creates a new SQL data source syntax tree node by adding a new trait.

[Pure]
public override SqlMultiDataSourceNode AddTrait(SqlTraitNode trait)

Parameters

trait SqlTraitNode

Trait to add.

Returns

SqlMultiDataSourceNode

New SQL data source syntax tree node.

GetRecordSet(string)

Returns a record set associated with this data source by its identifier.

[Pure]
public override sealed SqlRecordSetNode GetRecordSet(string identifier)

Parameters

identifier string

Record set's Identifier.

Returns

SqlRecordSetNode

SqlRecordSetNode instance associated with the provided identifier.

Exceptions

KeyNotFoundException

When record set does not exist.

SetTraits(Chain<SqlTraitNode>)

Creates a new SQL data source syntax tree node by changing the Traits collection.

[Pure]
public override SqlMultiDataSourceNode SetTraits(Chain<SqlTraitNode> traits)

Parameters

traits Chain<SqlTraitNode>

Collection of traits to set.

Returns

SqlMultiDataSourceNode

New SQL data source syntax tree node.