QueryableMethodTranslatingExpressionVisitor 类

定义

在查询中转换可查询方法的类。

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

public abstract class QueryableMethodTranslatingExpressionVisitor : System.Linq.Expressions.ExpressionVisitor
type QueryableMethodTranslatingExpressionVisitor = class
    inherit ExpressionVisitor
Public MustInherit Class QueryableMethodTranslatingExpressionVisitor
Inherits ExpressionVisitor
继承
QueryableMethodTranslatingExpressionVisitor
派生

注解

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

构造函数

QueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, Boolean)

在查询中转换可查询方法的类。

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

QueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, QueryCompilationContext, Boolean)

创建 QueryableMethodTranslatingExpressionVisitor 类的新实例。

属性

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

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

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

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

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

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)

转换给定的子查询。

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)

在查询中转换可查询方法的类。

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

VisitMethodCall(MethodCallExpression)

在查询中转换可查询方法的类。

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

适用于