Jazyk

RelationalQueryableMethodTranslatingExpressionVisitor Třída

Definice

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

[System.Runtime.CompilerServices.Nullable(0)]
public class RelationalQueryableMethodTranslatingExpressionVisitor : Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor
public class RelationalQueryableMethodTranslatingExpressionVisitor : Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor
[<System.Runtime.CompilerServices.Nullable(0)>]
type RelationalQueryableMethodTranslatingExpressionVisitor = class
    inherit QueryableMethodTranslatingExpressionVisitor
type RelationalQueryableMethodTranslatingExpressionVisitor = class
    inherit QueryableMethodTranslatingExpressionVisitor
Public Class RelationalQueryableMethodTranslatingExpressionVisitor
Inherits QueryableMethodTranslatingExpressionVisitor
Dědičnost
RelationalQueryableMethodTranslatingExpressionVisitor
Atributy

Konstruktory

Název Description
RelationalQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies, IModel)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

RelationalQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies, QueryCompilationContext)

Vytvoří novou instanci QueryableMethodTranslatingExpressionVisitor třídy.

RelationalQueryableMethodTranslatingExpressionVisitor(QueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryableMethodTranslatingExpressionVisitorDependencies, RelationalQueryCompilationContext)

Vytvoří novou instanci QueryableMethodTranslatingExpressionVisitor třídy.

RelationalQueryableMethodTranslatingExpressionVisitor(RelationalQueryableMethodTranslatingExpressionVisitor)

Vytvoří novou instanci QueryableMethodTranslatingExpressionVisitor třídy.

Pole

Název Description
ValuesOrderingColumnName

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

ValuesValueColumnName

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

Vlastnosti

Název Description
Dependencies

Závislosti pro tuto službu.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
QueryCompilationContext

Kontextový objekt kompilace dotazu pro aktuální kompilaci.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
RelationalDependencies

Závislosti specifické pro relačního zprostředkovatele pro tuto službu.

TranslationErrorDetails

Podrobné informace o chybách, ke kterým došlo během překladu

(Zděděno od QueryableMethodTranslatingExpressionVisitor)

Metody

Název Description
AddTranslationErrorDetails(String)

Přidá podrobné informace o chybách, ke kterým došlo během překladu.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
ApplyInferredTypeMappings(Expression, IReadOnlyDictionary<ValueTuple<TableExpressionBase,String>,RelationalTypeMapping>)

Vyvoláno na konci překladu nejvyšší úrovně použije mapování odvozených typů pro dotazovatelné konstanty/parametry a ověřuje, že všechny SqlExpression mají mapování typu.

CreateSelect(IEntityType)

Slouží k vytvoření kořenového adresáře SelectExpression představujícího dotaz daného typu entity.

CreateSelect(JsonQueryExpression, TableExpressionBase, String, Type, RelationalTypeMapping)

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

CreateShapedQueryExpression(IEntityType)

Vytvoří ShapedQueryExpression pro daný typ entity.

CreateShapedQueryExpression(Type)
Zastaralé.

Vytvoří ShapedQueryExpression pro daný typ vyhledáním jeho typu entity v modelu.

CreateSubqueryVisitor()

Vytvoří návštěvníka přizpůsobený k překladu poddotazu prostřednictvím TranslateSubquery(Expression).

GenerateJsonPartialUpdateSetter(Expression, SqlExpression, SqlExpression)

Bod rozšíření zprostředkovatele pro implementaci částečných aktualizací ve sloupcích JSON

IsNaturallyOrdered(SelectExpression)

Určuje, zda je daná hodnota SelectExpression přirozeně seřazená, což znamená, že ef automaticky přidal řazení, aby se zachovalo například přirozené řazení pole JSON, a ne proto, že původní dotaz LINQ obsahoval explicitní řazení.

IsOrdered(SelectExpression)

Určuje, zda je daná položka SelectExpression seřazená, obvykle proto, že do ní byly přidány řazení.

IsValidSelectExpressionForExecuteDelete(SelectExpression, EntityShaperExpression, TableExpression)

Kontroluje, jestli aktuální výběrový výraz může být použit as-is ke spuštění operace odstranění nebo jestli se musí vložit do poddotazu.

IsValidSelectExpressionForExecuteDelete(SelectExpression, StructuralTypeShaperExpression, TableExpression)
Zastaralé.

Tato metoda byla zastaralá, místo toho použijte metodu, která přijímá jeden parametr SelectExpression.

IsValidSelectExpressionForExecuteDelete(SelectExpression)

Zkontroluje, jestli je možné použít aktuální výběrový výraz as-is k provedení operace odstranění nebo jestli se musí vložit do poddotazu.

IsValidSelectExpressionForExecuteUpdate(SelectExpression, EntityShaperExpression, TableExpression)

Ověří, jestli se k provedení operace aktualizace dá použít aktuální výběrový výraz, nebo vyžaduje, aby byl připojen jako poddotaz.

IsValidSelectExpressionForExecuteUpdate(SelectExpression, TableExpressionBase, TableExpression)

Ověří, jestli se k provedení operace aktualizace dá použít aktuální výběrový výraz, nebo vyžaduje, aby byl připojen jako poddotaz.

MarkShaperNullable(Expression)

Označí tvarovač entity v daném výrazu shaper jako nullable.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
TransformJsonQueryToTable(JsonQueryExpression)

Vyvolá se, když se operátory LINQ skládají z kolekce v dokumentu JSON. Převede poskytnutý JsonQueryExpression objekt představující přístup ke kolekci do zprostředkovatele, který rozšíří pole JSON na relační tabulku nebo sadu řádků (např. SQL Server OPENJSON).

Translate(Expression)

Převede výraz na ekvivalentní reprezentaci SQL.

Translate(Expression)

Převede výraz na ekvivalentní reprezentaci SQL.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
TranslateAll(ShapedQueryExpression, LambdaExpression)

Přeloží All<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) metodu nad daným zdrojem.

TranslateAny(ShapedQueryExpression, LambdaExpression)

Přeloží Any<TSource>(IQueryable<TSource>) metodu a další přetížení nad daným zdrojem.

TranslateAverage(ShapedQueryExpression, LambdaExpression, Type)

Přeloží Average(IQueryable<Decimal>) metodu a další přetížení nad daným zdrojem.

TranslateCast(ShapedQueryExpression, Type)

Přeloží Cast<TResult>(IQueryable) metodu nad daným zdrojem.

TranslateConcat(ShapedQueryExpression, ShapedQueryExpression)

Přeloží Concat<TSource>(IQueryable<TSource>, IEnumerable<TSource>) metodu nad daným zdrojem.

TranslateContains(ShapedQueryExpression, Expression)

Přeloží Contains<TSource>(IQueryable<TSource>, TSource) metodu nad daným zdrojem.

TranslateCount(ShapedQueryExpression, LambdaExpression)

Přeloží Count<TSource>(IQueryable<TSource>) metodu a další přetížení nad daným zdrojem.

TranslateDefaultIfEmpty(ShapedQueryExpression, Expression)

Přeloží DefaultIfEmpty<TSource>(IQueryable<TSource>) metodu a další přetížení nad daným zdrojem.

TranslateDistinct(ShapedQueryExpression)

Přeloží Distinct<TSource>(IQueryable<TSource>) metodu nad daným zdrojem.

TranslateElementAtOrDefault(ShapedQueryExpression, Expression, Boolean)

Překládá ElementAt<TSource>(IQueryable<TSource>, Int32) metodu nebo ElementAtOrDefault<TSource>(IQueryable<TSource>, Int32) přes daný zdroj.

TranslateExcept(ShapedQueryExpression, ShapedQueryExpression)

Přeloží Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) metodu nad daným zdrojem.

TranslateExecuteDelete(ShapedQueryExpression)

Přeloží ExecuteDelete<TSource>(IQueryable<TSource>) metodu nad daným zdrojem.

TranslateExecuteUpdate(ShapedQueryExpression, IReadOnlyList<QueryableMethodTranslatingExpressionVisitor.ExecuteUpdateSetter>)

Přeloží ExecuteUpdate<TSource>(IQueryable<TSource>, Action<UpdateSettersBuilder<TSource>>) metodu nad daným zdrojem.

TranslateExecuteUpdate(ShapedQueryExpression, LambdaExpression)

Přeloží ExecuteUpdate<TSource>(IQueryable<TSource>, Expression<Func<SetPropertyCalls<TSource>,SetPropertyCalls<TSource>>>) metodu nad daným zdrojem.

TranslateExpression(Expression, Boolean)

Převede daný výraz na ekvivalentní reprezentaci SQL.

TranslateExpression(Expression)

Převede daný výraz na ekvivalentní reprezentaci SQL.

TranslateFirstOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

First<TSource>(IQueryable<TSource>) Překládá metodu nebo FirstOrDefault<TSource>(IQueryable<TSource>) jejich další přetížení nad daným zdrojem.

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

Přeloží FullJoin přes daný zdroj.

TranslateGroupBy(ShapedQueryExpression, LambdaExpression, LambdaExpression, LambdaExpression)

Přeloží GroupBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) metodu a další přetížení nad daným zdrojem.

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

Přeloží GroupJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,IEnumerable<TInner>,TResult>>) metodu nad daným zdrojem.

TranslateInlineQueryRoot(InlineQueryRootExpression)

Převede vloženou kolekci na dotazovatelný výraz SQL VALUES.

TranslateIntersect(ShapedQueryExpression, ShapedQueryExpression)

Přeloží Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) metodu nad daným zdrojem.

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

Přeloží Join<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) metodu nad daným zdrojem.

TranslateLambdaExpression(ShapedQueryExpression, LambdaExpression)

Přeloží daný výraz lambda pro ShapedQueryExpression zdroj na ekvivalentní reprezentaci SQL.

TranslateLastOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

Last<TSource>(IQueryable<TSource>) Překládá metodu nebo LastOrDefault<TSource>(IQueryable<TSource>) jejich další přetížení nad daným zdrojem.

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

Přeloží LeftJoin přes daný zdroj.

TranslateLongCount(ShapedQueryExpression, LambdaExpression)

Přeloží LongCount<TSource>(IQueryable<TSource>) metodu a další přetížení nad daným zdrojem.

TranslateMax(ShapedQueryExpression, LambdaExpression, Type)

Přeloží Max<TSource>(IQueryable<TSource>) metodu a další přetížení nad daným zdrojem.

TranslateMemberAccess(Expression, MemberIdentity)

Přeloží přístup člena. Používá se, když vlastnost typu entity představuje kolekci, na které mohou být složeny dotazovatelné operátory LINQ.

TranslateMin(ShapedQueryExpression, LambdaExpression, Type)

Přeloží Min<TSource>(IQueryable<TSource>) metodu a další přetížení nad daným zdrojem.

TranslateOfType(ShapedQueryExpression, Type)

Přeloží OfType<TResult>(IQueryable) metodu nad daným zdrojem.

TranslateOrderBy(ShapedQueryExpression, LambdaExpression, Boolean)

Přeloží OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) nebo OrderByDescending<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) metodu přes daný zdroj.

TranslateParameterQueryRoot(ParameterQueryRootExpression)

Přeloží , ParameterQueryRootExpressionkterý představuje dotazovatelnou kolekci odkazovanou jako parametr v rámci dotazu.

TranslatePrimitiveCollection(SqlExpression, IProperty, String)

Přeloží kolekci primitivních hodnot parametru nebo sloupce. Zprostředkovatelé můžou přepsat, aby přeložily například sloupce int[] nebo parametry do dotazovatelné tabulky (OPENJSON v SQL Server, unnest on PostgreSQL...). Výchozí implementace vždy vrátí null (bez překladu).

TranslateResultSelectorForJoin(ShapedQueryExpression, LambdaExpression, Expression, Type)
Zastaralé.

Přeloží selektor výsledků pro operaci spojení.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
TranslateReverse(ShapedQueryExpression)

Přeloží Reverse<TSource>(IQueryable<TSource>) metodu nad daným zdrojem.

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

Přeloží LeftJoin přes daný zdroj.

TranslateSelect(ShapedQueryExpression, LambdaExpression)

Přeloží Select<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,TResult>>) metodu nad daným zdrojem.

TranslateSelectMany(ShapedQueryExpression, LambdaExpression, LambdaExpression)

Přeloží SelectMany<TSource,TCollection,TResult>(IQueryable<TSource>, Expression<Func<TSource, IEnumerable<TCollection>>>, Expression<Func<TSource,TCollection, TResult>>) metodu nad daným zdrojem.

TranslateSelectMany(ShapedQueryExpression, LambdaExpression)

Přeloží SelectMany<TSource,TResult>(IQueryable<TSource>, Expression<Func<TSource,IEnumerable<TResult>>>) metodu nad daným zdrojem.

TranslateSetters(ShapedQueryExpression, IReadOnlyList<QueryableMethodTranslatingExpressionVisitor.ExecuteUpdateSetter>, TableExpressionBase)

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

TranslateSingleOrDefault(ShapedQueryExpression, LambdaExpression, Type, Boolean)

Single<TSource>(IQueryable<TSource>) Překládá metodu nebo SingleOrDefault<TSource>(IQueryable<TSource>) jejich další přetížení nad daným zdrojem.

TranslateSkip(ShapedQueryExpression, Expression)

Přeloží Skip<TSource>(IQueryable<TSource>, Int32) metodu nad daným zdrojem.

TranslateSkipWhile(ShapedQueryExpression, LambdaExpression)

Přeloží SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) metodu nad daným zdrojem.

TranslateSubquery(Expression)

Přeloží daný poddotaz.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
TranslateSum(ShapedQueryExpression, LambdaExpression, Type)

Přeloží Sum(IQueryable<Decimal>) metodu a další přetížení nad daným zdrojem.

TranslateTake(ShapedQueryExpression, Expression)

Přeloží Take<TSource>(IQueryable<TSource>, Int32) metodu nad daným zdrojem.

TranslateTakeWhile(ShapedQueryExpression, LambdaExpression)

Přeloží TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) metodu nad daným zdrojem.

TranslateThenBy(ShapedQueryExpression, LambdaExpression, Boolean)

Přeloží ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) nebo ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) metodu přes daný zdroj.

TranslateUnion(ShapedQueryExpression, ShapedQueryExpression)

Přeloží Union<TSource>(IQueryable<TSource>, IEnumerable<TSource>) metodu nad daným zdrojem.

TranslateWhere(ShapedQueryExpression, LambdaExpression)

Přeloží Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) metodu nad daným zdrojem.

TrySerializeScalarToJson(JsonScalarExpression, SqlExpression, SqlExpression)

Serializuje relační skalární hodnotu do FORMÁTU JSON pro částečné aktualizace ve sloupci JSON v rámci TranslateExecuteUpdate(ShapedQueryExpression, IReadOnlyList<QueryableMethodTranslatingExpressionVisitor.ExecuteUpdateSetter>).

TryTranslateSetters(ShapedQueryExpression, IReadOnlyList<QueryableMethodTranslatingExpressionVisitor.ExecuteUpdateSetter>, IReadOnlyList<ColumnValueSetter>, TableExpressionBase)

Jedná se o interní rozhraní API, které podporuje infrastrukturu Entity Framework Core a nevztahuje se na stejné standardy kompatibility jako veřejná rozhraní API. Může se změnit nebo odebrat bez upozornění v jakékoli verzi. Měli byste ho používat přímo ve svém kódu s extrémní opatrností a vědět, že to může vést k selháním aplikace při aktualizaci na novou Entity Framework Core verzi.

VisitConstant(ConstantExpression)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
VisitExtension(Expression)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

VisitExtension(Expression)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
VisitInlineQueryRoot(InlineQueryRootExpression)

Převede vloženou kolekci na dotazovatelný výraz SQL VALUES.

VisitMember(MemberExpression)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)
VisitMethodCall(MethodCallExpression)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

VisitMethodCall(MethodCallExpression)

Třída, která překládá dotazovatelné metody v dotazu.

Tento typ obvykle používají poskytovatelé databáze (a další rozšíření). Obvykle se nepoužívá v kódu aplikace.

(Zděděno od QueryableMethodTranslatingExpressionVisitor)

Platí pro