다음을 통해 공유


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 순서가 자연스럽게 정렬되는지 여부를 결정합니다. 즉, 원래 LINQ 쿼리에 명시적 순서가 포함되어 있지 않고 JSON 배열의 자연 순서를 유지하기 위해 EF에 의해 순서가 자동으로 추가되었습니다.

IsOrdered(SelectExpression)

지정된 순서가 SelectExpression 정렬되는지 여부를 결정합니다. 일반적으로 주문이 추가되었기 때문입니다.

IsValidSelectExpressionForExecuteDelete(SelectExpression, EntityShaperExpression, TableExpression)

현재 선택 식을 있는 그대로 사용하여 삭제 작업을 실행할 수 있는지 또는 하위 쿼리로 푸시다운해야 하는지 여부를 검사합니다.

IsValidSelectExpressionForExecuteDelete(SelectExpression, StructuralTypeShaperExpression, TableExpression)

현재 선택 식을 있는 그대로 사용하여 삭제 작업을 실행할 수 있는지 또는 하위 쿼리로 푸시다운해야 하는지 여부를 검사합니다.

IsValidSelectExpressionForExecuteUpdate(SelectExpression, EntityShaperExpression, TableExpression)

현재 선택 식을 업데이트 실행 작업에 사용할 수 있는지 또는 하위 쿼리로 조인해야 하는지 유효성을 검사합니다.

IsValidSelectExpressionForExecuteUpdate(SelectExpression, TableExpressionBase, TableExpression)

현재 선택 식을 업데이트 실행 작업에 사용할 수 있는지 또는 하위 쿼리로 조인해야 하는지 유효성을 검사합니다.

MarkShaperNullable(Expression)

지정된 셰이퍼 식의 엔터티 쉐이퍼를 nullable로 표시합니다.

(다음에서 상속됨 QueryableMethodTranslatingExpressionVisitor)
TransformJsonQueryToTable(JsonQueryExpression)

LINQ 연산자가 JSON 문서 내의 컬렉션에 대해 작성될 때 호출됩니다. 제공된 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)

원본에 대해 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[] 열 또는 매개 변수를 쿼리 가능한 테이블로 변환할 수 있습니다(SQL Server OPENJSON, PostgreSQL에서는 unnest...). 기본 구현은 항상 (번역 없음)을 반환 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)

적용 대상