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
intA unique id for the collection being shaped.
parentIdentifier
ExpressionAn identifier for the parent element.
childIdentifier
ExpressionAn identifier for the child element.
identifierValueComparers
IReadOnlyList<ValueComparer>A list of value comparers to compare identifiers.
selectExpression
SelectExpressionA SQL query to get values for this collection from database.
innerShaper
ExpressionAn expression used to create individual elements of the collection.
navigation
INavigationBaseA navigation associated with this collection, if any.
elementType
TypeThe 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
parentIdentifier
ExpressionThe ParentIdentifier property of the result.
childIdentifier
ExpressionThe ChildIdentifier property of the result.
selectExpression
SelectExpressionThe SelectExpression property of the result.
innerShaper
ExpressionThe 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