Class KEFCoreQueryExpression
- Namespace
- MASES.EntityFrameworkCore.KNet.Query.Internal
- Assembly
- MASES.EntityFrameworkCore.KNet.dll
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public class KEFCoreQueryExpression : Expression, IPrintableExpression
- Inheritance
-
KEFCoreQueryExpression
- Implements
- Inherited Members
Constructors
KEFCoreQueryExpression(IEntityType)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public KEFCoreQueryExpression(IEntityType entityType)
Parameters
entityTypeIEntityType
Properties
CurrentParameter
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual ParameterExpression CurrentParameter { get; }
Property Value
NodeType
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public override sealed ExpressionType NodeType { get; }
Property Value
ServerQueryExpression
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual Expression ServerQueryExpression { get; }
Property Value
Type
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public override Type Type { get; }
Property Value
Methods
AddInnerJoin(KEFCoreQueryExpression, LambdaExpression, LambdaExpression, Expression, Expression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual Expression AddInnerJoin(KEFCoreQueryExpression innerQueryExpression, LambdaExpression outerKeySelector, LambdaExpression innerKeySelector, Expression outerShaperExpression, Expression innerShaperExpression)
Parameters
innerQueryExpressionKEFCoreQueryExpressionouterKeySelectorLambdaExpressioninnerKeySelectorLambdaExpressionouterShaperExpressionExpressioninnerShaperExpressionExpression
Returns
AddLeftJoin(KEFCoreQueryExpression, LambdaExpression, LambdaExpression, Expression, Expression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual Expression AddLeftJoin(KEFCoreQueryExpression innerQueryExpression, LambdaExpression outerKeySelector, LambdaExpression innerKeySelector, Expression outerShaperExpression, Expression innerShaperExpression)
Parameters
innerQueryExpressionKEFCoreQueryExpressionouterKeySelectorLambdaExpressioninnerKeySelectorLambdaExpressionouterShaperExpressionExpressioninnerShaperExpressionExpression
Returns
AddNavigationToWeakEntityType(EntityProjectionExpression, INavigation, KEFCoreQueryExpression, LambdaExpression, LambdaExpression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual StructuralTypeShaperExpression AddNavigationToWeakEntityType(EntityProjectionExpression entityProjectionExpression, INavigation navigation, KEFCoreQueryExpression innerQueryExpression, LambdaExpression outerKeySelector, LambdaExpression innerKeySelector)
Parameters
entityProjectionExpressionEntityProjectionExpressionnavigationINavigationinnerQueryExpressionKEFCoreQueryExpressionouterKeySelectorLambdaExpressioninnerKeySelectorLambdaExpression
Returns
AddSelectMany(KEFCoreQueryExpression, Expression, Expression, bool)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual Expression AddSelectMany(KEFCoreQueryExpression innerQueryExpression, Expression outerShaperExpression, Expression innerShaperExpression, bool innerNullable)
Parameters
innerQueryExpressionKEFCoreQueryExpressionouterShaperExpressionExpressioninnerShaperExpressionExpressioninnerNullablebool
Returns
ApplyDefaultIfEmpty()
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ApplyDefaultIfEmpty()
ApplyDistinct()
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ApplyDistinct()
ApplyGrouping(Expression, Expression, bool)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual GroupByShaperExpression ApplyGrouping(Expression groupingKey, Expression shaperExpression, bool defaultElementSelector)
Parameters
groupingKeyExpressionshaperExpressionExpressiondefaultElementSelectorbool
Returns
ApplyProjection()
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ApplyProjection()
ApplySetOperation(MethodInfo, KEFCoreQueryExpression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ApplySetOperation(MethodInfo setOperationMethodInfo, KEFCoreQueryExpression source2)
Parameters
setOperationMethodInfoMethodInfosource2KEFCoreQueryExpression
Clone(Expression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual ShapedQueryExpression Clone(Expression shaperExpression)
Parameters
shaperExpressionExpression
Returns
ConvertToSingleResult(MethodInfo)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ConvertToSingleResult(MethodInfo methodInfo)
Parameters
methodInfoMethodInfo
GetProjectedProperties()
Collects the set of IProperty that this query's projection actually reads, so that it can be pushed down to the storage layer to skip deserialization of properties that aren't needed (see the projection push-down design). Must be called before ApplyProjection(): that method destructively rewrites MASES.EntityFrameworkCore.KNet.Query.Internal.KEFCoreQueryExpression._projectionMapping/MASES.EntityFrameworkCore.KNet.Query.Internal.KEFCoreQueryExpression._clientProjections into plain ValueBuffer indices, erasing the IProperty information this method relies on.
public virtual IReadOnlyList<IProperty>? GetProjectedProperties()
Returns
- IReadOnlyList<IProperty>
The properties actually read by the projection, or null when no safe narrowing can be determined — e.g. when a projection element is bound to a whole EntityProjectionExpression (the query returns entire entities:
.Select(x => x),context.Set<T>(), or an owned/complex sub-object still expressed as a full entity projection — all properties are genuinely needed), when a property can't be inferred from a projected expression (e.g. a computed expression, a bound complex-type projection, or any shape other than a direct property read), or when the query has no property-level shape to narrow at all (e.g.Count()/Any()). null means "use the full entity, no filtering" — the safe default whenever the projection shape isn't unambiguously recognized.
GetProjection(ProjectionBindingExpression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual Expression GetProjection(ProjectionBindingExpression projectionBindingExpression)
Parameters
projectionBindingExpressionProjectionBindingExpression
Returns
GetSingleScalarProjection()
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual Expression GetSingleScalarProjection()
Returns
ReplaceProjection(IReadOnlyDictionary<ProjectionMember, Expression>)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ReplaceProjection(IReadOnlyDictionary<ProjectionMember, Expression> projectionMapping)
Parameters
projectionMappingIReadOnlyDictionary<ProjectionMember, Expression>
ReplaceProjection(IReadOnlyList<Expression>)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void ReplaceProjection(IReadOnlyList<Expression> clientProjections)
Parameters
clientProjectionsIReadOnlyList<Expression>
UpdateServerQueryExpression(Expression)
This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.
public virtual void UpdateServerQueryExpression(Expression serverQueryExpression)
Parameters
serverQueryExpressionExpression