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
collectionIdintA unique id for the collection being shaped.
parentIdentifierExpressionAn identifier for the parent element.
childIdentifierExpressionAn identifier for the child element.
identifierValueComparersIReadOnlyList<ValueComparer>A list of value comparers to compare identifiers.
selectExpressionSelectExpressionA SQL query to get values for this collection from database.
innerShaperExpressionAn expression used to create individual elements of the collection.
navigationINavigationBaseA navigation associated with this collection, if any.
elementTypeTypeThe clr type of individual elements in the collection.
Properties
ChildIdentifier
The identifier for the child element.
public virtual Expression ChildIdentifier { get; }
Property Value
CollectionId
A unique id for this collection shaper.
public virtual int CollectionId { get; }
Property Value
ElementType
The clr type of elements of the collection.
public virtual Type ElementType { get; }
Property Value
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
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
ParentIdentifier
The identifier for the parent element.
public virtual Expression ParentIdentifier { get; }
Property Value
SelectExpression
The SQL query to get values for this collection from database.
public virtual SelectExpression SelectExpression { get; }
Property Value
Type
public override Type Type { get; }
Property Value
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
parentIdentifierExpressionThe ParentIdentifier property of the result.
childIdentifierExpressionThe ChildIdentifier property of the result.
selectExpressionSelectExpressionThe SelectExpression property of the result.
innerShaperExpressionThe 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
visitorExpressionVisitor