RelationalQueryableMethodTranslatingExpressionVisitor 类

定义

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

public class RelationalQueryableMethodTranslatingExpressionVisitor : Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor
type RelationalQueryableMethodTranslatingExpressionVisitor = class
    inherit QueryableMethodTranslatingExpressionVisitor
Public Class RelationalQueryableMethodTranslatingExpressionVisitor
Inherits QueryableMethodTranslatingExpressionVisitor
继承
RelationalQueryableMethodTranslatingExpressionVisitor

构造函数

RelationalQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies, IModel)

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

RelationalQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies, QueryCompilationContext)

创建 QueryableMethodTranslatingExpressionVisitor 类的新实例。

RelationalQueryableMethodTranslatingExpressionVisitor(RelationalQueryableMethodTranslatingExpressionVisitor)

创建 QueryableMethodTranslatingExpressionVisitor 类的新实例。

属性

Dependencies

此服务的依赖项。

(继承自 QueryableMethodTranslatingExpressionVisitor)
QueryCompilationContext

当前编译的查询编译上下文对象。

(继承自 QueryableMethodTranslatingExpressionVisitor)
RelationalDependencies

此服务的关系提供程序特定的依赖项。

TranslationErrorDetails

有关转换期间遇到的错误的详细信息。

(继承自 QueryableMethodTranslatingExpressionVisitor)

方法

AddTranslationErrorDetails(String)

添加有关转换过程中遇到的错误的详细信息。

(继承自 QueryableMethodTranslatingExpressionVisitor)
ApplyInferredTypeMappings(Expression, IReadOnlyDictionary<ValueTuple<TableExpressionBase,String>,RelationalTypeMapping>)

在顶级转换结束时调用,对可查询常量/参数应用推断的类型映射,并验证所有 SqlExpression 类型映射。

CreateShapedQueryExpression(IEntityType)

ShapedQueryExpression为给定的实体类型创建 。

CreateShapedQueryExpression(IEntityType)

ShapedQueryExpression为给定的实体类型创建 。

(继承自 QueryableMethodTranslatingExpressionVisitor)
CreateShapedQueryExpression(Type)
已过时.

ShapedQueryExpression通过在模型中查找给定类型的实体类型,为该类型创建 。

CreateShapedQueryExpression(Type)
已过时.

ShapedQueryExpression通过在模型中查找给定类型的实体类型,为该类型创建 。

(继承自 QueryableMethodTranslatingExpressionVisitor)
CreateSubqueryVisitor()

创建自定义的访问者,以通过 TranslateSubquery(Expression)转换子查询。

IsNaturallyOrdered(SelectExpression)

确定给定 SelectExpression 的 是否是自然排序的,这意味着 EF 会自动添加任何排序来保留 JSON 数组的自然排序,而不是因为原始 LINQ 查询包含显式排序。

IsOrdered(SelectExpression)

确定是否对给定 SelectExpression 进行排序,通常是因为已向它添加排序。

IsValidSelectExpressionForExecuteDelete(SelectExpression, EntityShaperExpression, TableExpression)

检查当前选择表达式是否可以按原样用于执行删除操作,或者是否必须将其向下推送到子查询中。

IsValidSelectExpressionForExecuteDelete(SelectExpression, StructuralTypeShaperExpression, TableExpression)

检查当前选择表达式是否可以按原样用于执行删除操作,或者是否必须将其向下推送到子查询中。

IsValidSelectExpressionForExecuteUpdate(SelectExpression, EntityShaperExpression, TableExpression)

验证当前选择表达式是否可用于执行更新操作,或者它需要作为子查询联接。

IsValidSelectExpressionForExecuteUpdate(SelectExpression, TableExpressionBase, TableExpression)

验证当前选择表达式是否可用于执行更新操作,或者它需要作为子查询联接。

MarkShaperNullable(Expression)

将给定整形器表达式中的实体整形器标记为可以为 null。

(继承自 QueryableMethodTranslatingExpressionVisitor)
TransformJsonQueryToTable(JsonQueryExpression)

在 JSON 文档中的集合上编写 LINQ 运算符时调用。 将提供的 JsonQueryExpression (表示对集合的访问)转换为提供程序特定的方法,以将 JSON 数组扩展到关系表/行集 (例如SQL Server OPENJSON) 。

Translate(Expression)

将表达式转换为等效的 SQL 表示形式。

Translate(Expression)

将表达式转换为等效的 SQL 表示形式。

(继承自 QueryableMethodTranslatingExpressionVisitor)
TranslateAll(ShapedQueryExpression, LambdaExpression)

All<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)转换给定源上的方法。

TranslateAny(ShapedQueryExpression, LambdaExpression)

转换 Any<TSource>(IQueryable<TSource>) 给定源上的方法和其他重载。

TranslateAverage(ShapedQueryExpression, LambdaExpression, Type)

转换 Average(IQueryable<Decimal>) 给定源上的方法和其他重载。

TranslateCast(ShapedQueryExpression, Type)

Cast<TResult>(IQueryable)转换给定源上的方法。

TranslateConcat(ShapedQueryExpression, ShapedQueryExpression)

Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>)转换给定源上的方法。

TranslateContains(ShapedQueryExpression, Expression)

Contains<TSource>(IQueryable<TSource>, TSource)转换给定源上的方法。

TranslateCount(ShapedQueryExpression, LambdaExpression)

转换 Count<TSource>(IQueryable<TSource>) 给定源上的方法和其他重载。

TranslateDefaultIfEmpty(ShapedQueryExpression, Expression)

转换 DefaultIfEmpty<TSource>(IQueryable<TSource>) 给定源上的方法和其他重载。

TranslateDistinct(ShapedQueryExpression)

Distinct<TSource>(IQueryable<TSource>)转换给定源上的方法。

TranslateElementAtOrDefault(ShapedQueryExpression, Expression, Boolean)

ElementAt<TSource>(IQueryable<TSource>, Int32)转换 方法或通过ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32)给定的源转换。

TranslateExcept(ShapedQueryExpression, ShapedQueryExpression)

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)转换给定源上的方法。

TranslateExecuteDelete(ShapedQueryExpression)

ExecuteDelete<TSource>(IQueryable<TSource>)转换给定源上的方法。

TranslateExecuteUpdate(ShapedQueryExpression, LambdaExpression)

ExecuteUpdate<TSource>(IQueryable<TSource>, Expression<Func<SetPropertyCalls<TSource>,SetPropertyCalls<TSource>>>)转换给定源上的方法。

TranslateExpression(Expression)

将给定的表达式转换为等效的 SQL 表示形式。

TranslateExpression(Expression, Boolean)

将给定的表达式转换为等效的 SQL 表示形式。

TranslateFirstOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

First<TSource>(IQueryable<TSource>)在给定源上转换 方法或 FirstOrDefault<TSource>(IQueryable<TSource>) 方法及其其他重载。

TranslateGroupBy(ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

转换 GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 给定源上的方法和其他重载。

TranslateGroupJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

GroupJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,IEnumerable<TInner>,TResult>>)转换给定源上的方法。

TranslateIntersect(ShapedQueryExpression, ShapedQueryExpression)

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)转换给定源上的方法。

TranslateJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

Join<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>)转换给定源上的方法。

TranslateLambdaExpression(ShapedQueryExpression, LambdaExpression)

将源的给定 lambda 表达式 ShapedQueryExpression 转换为等效的 SQL 表示形式。

TranslateLastOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

Last<TSource>(IQueryable<TSource>)在给定源上转换 方法或 LastOrDefault<TSource>(IQueryable<TSource>) 方法及其其他重载。

TranslateLeftJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

在给定源上转换 LeftJoin。

TranslateLongCount(ShapedQueryExpression, LambdaExpression)

转换 LongCount<TSource>(IQueryable<TSource>) 给定源上的方法和其他重载。

TranslateMax(ShapedQueryExpression, LambdaExpression, Type)

转换 Max<TSource>(IQueryable<TSource>) 给定源上的方法和其他重载。

TranslateMin(ShapedQueryExpression, LambdaExpression, Type)

转换 Min<TSource>(IQueryable<TSource>) 给定源上的方法和其他重载。

TranslateOfType(ShapedQueryExpression, Type)

OfType<TResult>(IQueryable)转换给定源上的方法。

TranslateOrderBy(ShapedQueryExpression, LambdaExpression, Boolean)

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)在给定源上转换或OrderByDescending<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)方法。

TranslatePrimitiveCollection(SqlExpression, IProperty, String)

转换基元值的参数或列集合。 提供程序可以重写此功能,将 int[] 列或参数等转换为可查询表 (OPENJSON on SQL Server,在 PostgreSQL...) 上取消输入。默认实现始终返回 null (没有转换) 。

TranslateResultSelectorForJoin(ShapedQueryExpression, LambdaExpression, Expression, Type)
已过时.

转换联接操作的结果选择器。

(继承自 QueryableMethodTranslatingExpressionVisitor)
TranslateReverse(ShapedQueryExpression)

Reverse<TSource>(IQueryable<TSource>)转换给定源上的方法。

TranslateSelect(ShapedQueryExpression, LambdaExpression)

Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>)转换给定源上的方法。

TranslateSelectMany(ShapedQueryExpression, LambdaExpression)

SelectMany<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,IEnumerable<TResult>>>)转换给定源上的方法。

TranslateSelectMany(ShapedQueryExpression, LambdaExpression, LambdaExpression)

SelectMany<TSource,TCollection,TResult>(IQueryable<TSource>, Expression<Func<TSource, IEnumerable<TCollection>>>, Expression<Func<TSource,TCollection, TResult>>)转换给定源上的方法。

TranslateSingleOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

Single<TSource>(IQueryable<TSource>)在给定源上转换 方法或 SingleOrDefault<TSource>(IQueryable<TSource>) 方法及其其他重载。

TranslateSkip(ShapedQueryExpression, Expression)

Skip<TSource>(IQueryable<TSource>, Int32)转换给定源上的方法。

TranslateSkipWhile(ShapedQueryExpression, LambdaExpression)

SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)转换给定源上的方法。

TranslateSubquery(Expression)

转换给定的子查询。

(继承自 QueryableMethodTranslatingExpressionVisitor)
TranslateSum(ShapedQueryExpression, LambdaExpression, Type)

转换 Sum(IQueryable<Decimal>) 给定源上的方法和其他重载。

TranslateTake(ShapedQueryExpression, Expression)

Take<TSource>(IQueryable<TSource>, Int32)转换给定源上的方法。

TranslateTakeWhile(ShapedQueryExpression, LambdaExpression)

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)转换给定源上的方法。

TranslateThenBy(ShapedQueryExpression, LambdaExpression, Boolean)

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)在给定源上转换或ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)方法。

TranslateUnion(ShapedQueryExpression, ShapedQueryExpression)

Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>)转换给定源上的方法。

TranslateWhere(ShapedQueryExpression, LambdaExpression)

Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)转换给定源上的方法。

VisitConstant(ConstantExpression)

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

(继承自 QueryableMethodTranslatingExpressionVisitor)
VisitExtension(Expression)

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

VisitExtension(Expression)

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

(继承自 QueryableMethodTranslatingExpressionVisitor)
VisitInlineQueryRoot(InlineQueryRootExpression)

将内联集合转换为可查询的 SQL VALUES 表达式。

VisitMethodCall(MethodCallExpression)

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

VisitMethodCall(MethodCallExpression)

一个类,用于转换查询中的可查询方法。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不用于应用程序代码。

(继承自 QueryableMethodTranslatingExpressionVisitor)

适用于