Table of Contents

Class RelationalSplitCollectionShaperExpression

Namespace
Microsoft.EntityFrameworkCore.Query
Assembly
Microsoft.EntityFrameworkCore.Relational.dll

An expression that represents creation of a collection during split query for relational provider in Microsoft.EntityFrameworkCore.Query.ShapedQueryExpression.ShaperExpression.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

public class RelationalSplitCollectionShaperExpression : Expression, IPrintableExpression
Inheritance
RelationalSplitCollectionShaperExpression
Implements
IPrintableExpression
Inherited Members

Constructors

RelationalSplitCollectionShaperExpression(int, Expression, Expression, IReadOnlyList<ValueComparer>, SelectExpression, Expression, INavigationBase, Type)

Creates a new instance of the RelationalCollectionShaperExpression class.

public RelationalSplitCollectionShaperExpression(int collectionId, Expression parentIdentifier, Expression childIdentifier, IReadOnlyList<ValueComparer> identifierValueComparers, SelectExpression selectExpression, Expression innerShaper, INavigationBase navigation, Type elementType)

Parameters

collectionId int

A unique id for the collection being shaped.

parentIdentifier Expression

An identifier for the parent element.

childIdentifier Expression

An identifier for the child element.

identifierValueComparers IReadOnlyList<ValueComparer>

A list of value comparers to compare identifiers.

selectExpression SelectExpression

A SQL query to get values for this collection from database.

innerShaper Expression

An expression used to create individual elements of the collection.

navigation INavigationBase

A navigation associated with this collection, if any.

elementType Type

The clr type of individual elements in the collection.

Properties

ChildIdentifier

The identifier for the child element.

public virtual Expression ChildIdentifier { get; }

Property Value

Expression

CollectionId

A unique id for this collection shaper.

public virtual int CollectionId { get; }

Property Value

int

ElementType

The clr type of elements of the collection.

public virtual Type ElementType { get; }

Property Value

Type

IdentifierValueComparers

The list of value comparers to compare identifiers.

public virtual IReadOnlyList<ValueComparer> IdentifierValueComparers { get; }

Property Value

IReadOnlyList<ValueComparer>

InnerShaper

The expression to create inner elements.

public virtual Expression InnerShaper { get; }

Property Value

Expression

Navigation

The navigation if associated with the collection.

public virtual INavigationBase Navigation { get; }

Property Value

INavigationBase

NodeType

public override sealed ExpressionType NodeType { get; }

Property Value

ExpressionType

ParentIdentifier

The identifier for the parent element.

public virtual Expression ParentIdentifier { get; }

Property Value

Expression

SelectExpression

The SQL query to get values for this collection from database.

public virtual SelectExpression SelectExpression { get; }

Property Value

SelectExpression

Type

public override Type Type { get; }

Property Value

Type

Methods

Update(Expression, Expression, SelectExpression, Expression)

Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.

public virtual RelationalSplitCollectionShaperExpression Update(Expression parentIdentifier, Expression childIdentifier, SelectExpression selectExpression, Expression innerShaper)

Parameters

parentIdentifier Expression

The ParentIdentifier property of the result.

childIdentifier Expression

The ChildIdentifier property of the result.

selectExpression SelectExpression

The SelectExpression property of the result.

innerShaper Expression

The InnerShaper property of the result.

Returns

RelationalSplitCollectionShaperExpression

This expression if no children changed, or an expression with the updated children.

VisitChildren(ExpressionVisitor)

protected override Expression VisitChildren(ExpressionVisitor visitor)

Parameters

visitor ExpressionVisitor

Returns

Expression