# Class NpgsqlQueryableMethodTranslatingExpressionVisitor

Namespace
  Npgsql.EntityFrameworkCore.PostgreSQL.Query.Internal

Assembly
  Npgsql.EntityFrameworkCore.PostgreSQL.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 NpgsqlQueryableMethodTranslatingExpressionVisitor : RelationalQueryableMethodTranslatingExpressionVisitor

Inheritance
  object
  ExpressionVisitor
  QueryableMethodTranslatingExpressionVisitor
  RelationalQueryableMethodTranslatingExpressionVisitor
  NpgsqlQueryableMethodTranslatingExpressionVisitor

Inherited Members
  RelationalQueryableMethodTranslatingExpressionVisitor.Translate(Expression)
  RelationalQueryableMethodTranslatingExpressionVisitor.VisitExtension(Expression)
  RelationalQueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.VisitInlineQueryRoot(InlineQueryRootExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.CreateShapedQueryExpression(IEntityType)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateAverage(ShapedQueryExpression, LambdaExpression, Type)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateCast(ShapedQueryExpression, Type)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateDefaultIfEmpty(ShapedQueryExpression, Expression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateDistinct(ShapedQueryExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateExcept(ShapedQueryExpression, ShapedQueryExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateGroupBy(ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateGroupJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateIntersect(ShapedQueryExpression, ShapedQueryExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateLeftJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateLastOrDefault(ShapedQueryExpression, LambdaExpression, Type, bool)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateLongCount(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateMax(ShapedQueryExpression, LambdaExpression, Type)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateMin(ShapedQueryExpression, LambdaExpression, Type)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateOfType(ShapedQueryExpression, Type)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateOrderBy(ShapedQueryExpression, LambdaExpression, bool)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateReverse(ShapedQueryExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSelect(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSelectMany(ShapedQueryExpression, LambdaExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSelectMany(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSingleOrDefault(ShapedQueryExpression, LambdaExpression, Type, bool)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSkipWhile(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSum(ShapedQueryExpression, LambdaExpression, Type)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateTakeWhile(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateThenBy(ShapedQueryExpression, LambdaExpression, bool)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateUnion(ShapedQueryExpression, ShapedQueryExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateWhere(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateExecuteDelete(ShapedQueryExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateExecuteUpdate(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateExpression(Expression, bool)
  RelationalQueryableMethodTranslatingExpressionVisitor.TranslateLambdaExpression(ShapedQueryExpression, LambdaExpression)
  RelationalQueryableMethodTranslatingExpressionVisitor.RelationalDependencies
  QueryableMethodTranslatingExpressionVisitor.AddTranslationErrorDetails(string)
  QueryableMethodTranslatingExpressionVisitor.MarkShaperNullable(Expression)
  QueryableMethodTranslatingExpressionVisitor.TranslateSubquery(Expression)
  QueryableMethodTranslatingExpressionVisitor.Dependencies
  QueryableMethodTranslatingExpressionVisitor.TranslationErrorDetails
  QueryableMethodTranslatingExpressionVisitor.QueryCompilationContext
  ExpressionVisitor.Visit(ReadOnlyCollection<Expression>)
  ExpressionVisitor.Visit(Expression)
  ExpressionVisitor.VisitAndConvert<T>(ReadOnlyCollection<T>, string)
  ExpressionVisitor.VisitAndConvert<T>(T, string)
  ExpressionVisitor.VisitBinary(BinaryExpression)
  ExpressionVisitor.VisitBlock(BlockExpression)
  ExpressionVisitor.VisitCatchBlock(CatchBlock)
  ExpressionVisitor.VisitConditional(ConditionalExpression)
  ExpressionVisitor.VisitConstant(ConstantExpression)
  ExpressionVisitor.VisitDebugInfo(DebugInfoExpression)
  ExpressionVisitor.VisitDefault(DefaultExpression)
  ExpressionVisitor.VisitDynamic(DynamicExpression)
  ExpressionVisitor.VisitElementInit(ElementInit)
  ExpressionVisitor.VisitGoto(GotoExpression)
  ExpressionVisitor.VisitIndex(IndexExpression)
  ExpressionVisitor.VisitInvocation(InvocationExpression)
  ExpressionVisitor.VisitLabel(LabelExpression)
  ExpressionVisitor.VisitLabelTarget(LabelTarget)
  ExpressionVisitor.VisitLambda<T>(Expression<T>)
  ExpressionVisitor.VisitListInit(ListInitExpression)
  ExpressionVisitor.VisitLoop(LoopExpression)
  ExpressionVisitor.VisitMember(MemberExpression)
  ExpressionVisitor.VisitMemberAssignment(MemberAssignment)
  ExpressionVisitor.VisitMemberBinding(MemberBinding)
  ExpressionVisitor.VisitMemberInit(MemberInitExpression)
  ExpressionVisitor.VisitMemberListBinding(MemberListBinding)
  ExpressionVisitor.VisitMemberMemberBinding(MemberMemberBinding)
  ExpressionVisitor.VisitNew(NewExpression)
  ExpressionVisitor.VisitNewArray(NewArrayExpression)
  ExpressionVisitor.VisitParameter(ParameterExpression)
  ExpressionVisitor.VisitRuntimeVariables(RuntimeVariablesExpression)
  ExpressionVisitor.VisitSwitch(SwitchExpression)
  ExpressionVisitor.VisitSwitchCase(SwitchCase)
  ExpressionVisitor.VisitTry(TryExpression)
  ExpressionVisitor.VisitTypeBinary(TypeBinaryExpression)
  ExpressionVisitor.VisitUnary(UnaryExpression)
  ExpressionVisitor.Visit<T>(ReadOnlyCollection<T>, Func<T, T>)
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

## Constructors

### NpgsqlQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies, QueryCompilationContext)

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 NpgsqlQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies dependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies relationalDependencies, QueryCompilationContext queryCompilationContext)

#### Parameters

`dependencies` QueryableMethodTranslatingExpressionVisitorDependencies
`relationalDependencies` RelationalQueryableMethodTranslatingExpressionVisitorDependencies
`queryCompilationContext` QueryCompilationContext

### NpgsqlQueryableMethodTranslatingExpressionVisitor(NpgsqlQueryableMethodTranslatingExpressionVisitor)

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.

    protected NpgsqlQueryableMethodTranslatingExpressionVisitor(NpgsqlQueryableMethodTranslatingExpressionVisitor parentVisitor)

#### Parameters

`parentVisitor` NpgsqlQueryableMethodTranslatingExpressionVisitor

## Methods

### ApplyInferredTypeMappings(Expression, IReadOnlyDictionary<(TableExpressionBase, string), RelationalTypeMapping?>)

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.

    protected override Expression ApplyInferredTypeMappings(Expression expression, IReadOnlyDictionary<(TableExpressionBase, string), RelationalTypeMapping?> inferredTypeMappings)

#### Parameters

`expression` Expression
`inferredTypeMappings` IReadOnlyDictionary<(TableExpressionBase, string), RelationalTypeMapping>

#### Returns

Expression

### CreateSubqueryVisitor()

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.

    protected override QueryableMethodTranslatingExpressionVisitor CreateSubqueryVisitor()

#### Returns

QueryableMethodTranslatingExpressionVisitor

### IsNaturallyOrdered(SelectExpression)

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.

    protected override bool IsNaturallyOrdered(SelectExpression selectExpression)

#### Parameters

`selectExpression` SelectExpression

#### Returns

bool

### IsOrdered(SelectExpression)

Determines whether the given SelectExpression is ordered, typically because orderings have been added to it.

    protected override bool IsOrdered(SelectExpression selectExpression)

#### Parameters

`selectExpression` SelectExpression

  The SelectExpression to check for ordering.

#### Returns

bool

  Whether `selectExpression` is ordered.

### IsValidSelectExpressionForExecuteDelete(SelectExpression, StructuralTypeShaperExpression, out TableExpression?)

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.

    protected override bool IsValidSelectExpressionForExecuteDelete(SelectExpression selectExpression, StructuralTypeShaperExpression shaper, out TableExpression? tableExpression)

#### Parameters

`selectExpression` SelectExpression
`shaper` StructuralTypeShaperExpression
`tableExpression` TableExpression

#### Returns

bool

### IsValidSelectExpressionForExecuteUpdate(SelectExpression, TableExpressionBase, out TableExpression?)

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.

    protected override bool IsValidSelectExpressionForExecuteUpdate(SelectExpression selectExpression, TableExpressionBase targetTable, out TableExpression? tableExpression)

#### Parameters

`selectExpression` SelectExpression
`targetTable` TableExpressionBase
`tableExpression` TableExpression

#### Returns

bool

### TransformJsonQueryToTable(JsonQueryExpression)

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.

    protected override ShapedQueryExpression TransformJsonQueryToTable(JsonQueryExpression jsonQueryExpression)

#### Parameters

`jsonQueryExpression` JsonQueryExpression

#### Returns

ShapedQueryExpression

### TranslateAll(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateAll(ShapedQueryExpression source, LambdaExpression predicate)

#### Parameters

`source` ShapedQueryExpression
`predicate` LambdaExpression

#### Returns

ShapedQueryExpression

### TranslateAny(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateAny(ShapedQueryExpression source, LambdaExpression? predicate)

#### Parameters

`source` ShapedQueryExpression
`predicate` LambdaExpression

#### Returns

ShapedQueryExpression

### TranslateConcat(ShapedQueryExpression, ShapedQueryExpression)

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.

    protected override ShapedQueryExpression TranslateConcat(ShapedQueryExpression source1, ShapedQueryExpression source2)

#### Parameters

`source1` ShapedQueryExpression
`source2` ShapedQueryExpression

#### Returns

ShapedQueryExpression

### TranslateContains(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateContains(ShapedQueryExpression source, Expression item)

#### Parameters

`source` ShapedQueryExpression
`item` Expression

#### Returns

ShapedQueryExpression

### TranslateCount(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateCount(ShapedQueryExpression source, LambdaExpression? predicate)

#### Parameters

`source` ShapedQueryExpression
`predicate` LambdaExpression

#### Returns

ShapedQueryExpression

### TranslateElementAtOrDefault(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateElementAtOrDefault(ShapedQueryExpression source, Expression index, bool returnDefault)

#### Parameters

`source` ShapedQueryExpression
`index` Expression
`returnDefault` bool

#### Returns

ShapedQueryExpression

### TranslateFirstOrDefault(ShapedQueryExpression, LambdaExpression?, Type, 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.

    protected override ShapedQueryExpression? TranslateFirstOrDefault(ShapedQueryExpression source, LambdaExpression? predicate, Type returnType, bool returnDefault)

#### Parameters

`source` ShapedQueryExpression
`predicate` LambdaExpression
`returnType` Type
`returnDefault` bool

#### Returns

ShapedQueryExpression

### TranslatePrimitiveCollection(SqlExpression, IProperty?, string)

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.

    protected override ShapedQueryExpression TranslatePrimitiveCollection(SqlExpression sqlExpression, IProperty? property, string tableAlias)

#### Parameters

`sqlExpression` SqlExpression
`property` IProperty
`tableAlias` string

#### Returns

ShapedQueryExpression

### TranslateSkip(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateSkip(ShapedQueryExpression source, Expression count)

#### Parameters

`source` ShapedQueryExpression
`count` Expression

#### Returns

ShapedQueryExpression

### TranslateTake(ShapedQueryExpression, 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.

    protected override ShapedQueryExpression? TranslateTake(ShapedQueryExpression source, Expression count)

#### Parameters

`source` ShapedQueryExpression
`count` Expression

#### Returns

ShapedQueryExpression