语言

QueryableMethodTranslatingExpressionVisitor 类

定义

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

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

[System.Runtime.CompilerServices.Nullable(0)]
public abstract class QueryableMethodTranslatingExpressionVisitor : System.Linq.Expressions.ExpressionVisitor
public abstract class QueryableMethodTranslatingExpressionVisitor : System.Linq.Expressions.ExpressionVisitor
[<System.Runtime.CompilerServices.Nullable(0)>]
type QueryableMethodTranslatingExpressionVisitor = class
    inherit ExpressionVisitor
type QueryableMethodTranslatingExpressionVisitor = class
    inherit ExpressionVisitor
Public MustInherit Class QueryableMethodTranslatingExpressionVisitor
Inherits ExpressionVisitor
继承
QueryableMethodTranslatingExpressionVisitor
派生
特性

注解

有关详细信息和示例,请参阅 数据库提供程序和扩展的实现 以及 EF Core 查询的工作原理 。

构造函数

名称 说明
QueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, Boolean)

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

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

QueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, QueryCompilationContext, Boolean)

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

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

属性

名称 说明
Dependencies

此服务的依赖项。

QueryCompilationContext

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

TranslationErrorDetails

有关翻译期间遇到的错误的详细信息。

方法

名称 说明
AddTranslationErrorDetails(String)

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

CreateShapedQueryExpression(IEntityType)

为给定实体类型创建一个 ShapedQueryExpression 。

CreateShapedQueryExpression(Type)
已过时.

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

CreateSubqueryVisitor()

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

MarkShaperNullable(Expression)

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

Translate(Expression)

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

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, IReadOnlyList<QueryableMethodTranslatingExpressionVisitor.ExecuteUpdateSetter>)

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

TranslateExecuteUpdate(ShapedQueryExpression, LambdaExpression)

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

TranslateFirstOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

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

TranslateFullJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

将 FullJoin 转换为给定源。

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>>) 给定源上的方法。

TranslateInlineQueryRoot(InlineQueryRootExpression)

转换一个 InlineQueryRootExpression,表示查询内联表示的可查询集合。

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>>) 给定源上的方法。

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>) 给定源上的方法和其他重载。

TranslateMemberAccess(Expression, MemberIdentity)

转换成员访问权限。 当实体类型的属性表示可查询 LINQ 运算符可组合的集合时使用。

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>>) 方法。

TranslateParameterQueryRoot(ParameterQueryRootExpression)

转换一个 ParameterQueryRootExpression,该集合表示在查询中作为参数引用的可查询集合。

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

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

TranslateReverse(ShapedQueryExpression)

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

TranslateRightJoin(ShapedQueryExpression, ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

将 LeftJoin 转换为给定源。

TranslateSelect(ShapedQueryExpression, LambdaExpression)

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

TranslateSelectMany(ShapedQueryExpression, LambdaExpression, LambdaExpression)

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

TranslateSelectMany(ShapedQueryExpression, LambdaExpression)

转换 SelectMany<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,IEnumerable<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)

转换给定的子查询。

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)

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

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

VisitExtension(Expression)

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

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

VisitMember(MemberExpression)

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

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

VisitMethodCall(MethodCallExpression)

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

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

适用于