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
SqlMultiDataSourceNodeSource 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
SqlRecordSetNodeFirst 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
SqlRecordSetNodeFirst 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
Joins
Sequential collection of all SqlDataSourceJoinOnNode instances that define this data source.
public override sealed ReadOnlyArray<SqlDataSourceJoinOnNode> Joins { get; }
Property Value
RecordSets
Collection of all record sets contained by this data source.
public override sealed IReadOnlyCollection<SqlRecordSetNode> RecordSets { get; }
Property Value
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
SqlTraitNodeTrait 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
stringRecord 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.