Udostępnij za pośrednictwem


EnableQueryAttribute Klasa

Definicja

Ta klasa definiuje atrybut, który można zastosować do akcji w celu włączenia wykonywania zapytań przy użyciu składni zapytania OData. Aby uniknąć przetwarzania nieoczekiwanych lub złośliwych zapytań, użyj ustawień weryfikacji, EnableQueryAttribute aby zweryfikować zapytania przychodzące. Aby uzyskać więcej informacji, odwiedź stronę http://go.microsoft.com/fwlink/?LinkId=279712.

[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=false, Inherited=true)]
public class EnableQueryAttribute : System.Web.Http.Filters.ActionFilterAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=false, Inherited=true)]
public class EnableQueryAttribute : Microsoft.AspNetCore.Mvc.Filters.ActionFilterAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=false, Inherited=true)>]
type EnableQueryAttribute = class
    inherit ActionFilterAttribute
Public Class EnableQueryAttribute
Inherits ActionFilterAttribute
Dziedziczenie
System.Web.Http.Filters.ActionFilterAttribute
EnableQueryAttribute
Dziedziczenie
EnableQueryAttribute
Atrybuty

Konstruktory

EnableQueryAttribute()

Umożliwia akcji kontrolera obsługę parametrów zapytania OData.

Właściwości

AllowedArithmeticOperators

Pobiera lub ustawia wartość reprezentującą listę dozwolonych operatorów arytmetycznych, w tym "add", "sub", "mul", "div", "mod".

AllowedFunctions

Pobiera lub ustawia wartość reprezentującą listę dozwolonych funkcji używanych w zapytaniu $filter. Obsługiwane funkcje obejmują następujące elementy:

AllowedLogicalOperators

Pobiera lub ustawia wartość reprezentującą listę dozwolonych operatorów logicznych, takich jak "eq", "ne", "gt", "ge", "lt", "le", "and", "or", "not".

AllowedOrderByProperties

Pobiera lub ustawia ciąg z rozdzielaną przecinkami listą nazw właściwości. Wynik z możliwością wykonywania zapytania może być uporządkowany tylko przez te właściwości zdefiniowane na tej liście.

Pamiętaj, że domyślnie ten ciąg ma wartość null, co oznacza, że może być uporządkowany przez dowolną właściwość.

Na przykład ustawienie tej wartości na wartość null lub pusty ciąg oznacza, że zezwalamy na porządkowanie wyników z możliwością kwerendy według dowolnych właściwości. Ustawienie tej wartości na wartość "Name" oznacza, że zezwalamy na uporządkowanie wyników z możliwością wykonywania zapytań tylko według właściwości Name.

AllowedQueryOptions

Pobiera lub ustawia parametry zapytania, które są dozwolone w zapytaniach.

EnableConstantParameterization

Pobiera lub ustawia wartość wskazującą, czy stałe powinny być sparametryzowane. Parametryzowanie stałych spowodowałoby lepszą wydajność za pomocą platformy Entity Framework.

EnableCorrelatedSubqueryBuffering

Pobiera lub ustawia wartość wskazującą, czy zapytania z rozszerzonymi nawigacjami powinny być sformułowane, aby zachęcić skorelowane wyniki podzapytania do buforowania. Buforowanie skorelowanych wyników podzapytania może zmniejszyć liczbę zapytań z N + 1 do 2 przez buforowanie wyników z podzapytania.

EnsureStableOrdering

Pobiera lub ustawia wartość wskazującą, czy skład zapytania powinien zmienić oryginalne zapytanie, gdy jest to konieczne, aby zapewnić stabilną kolejność sortowania.

HandleNullPropagation

Pobiera lub ustawia wartość wskazującą sposób obsługi propagacji wartości null podczas tworzenia zapytań.

HandleReferenceNavigationPropertyExpandFilter

Honor $filter wewnątrz $expand właściwości nawigacji innej niż kolekcja. Rozwinięta właściwość jest wypełniana tylko wtedy, gdy filtr zwróci wartość true. To ustawienie jest domyślnie fałszywe.

MaxAnyAllExpressionDepth

Pobiera lub ustawia maksymalną głębokość dowolnych lub wszystkich elementów zagnieżdżonych wewnątrz zapytania. Ten limit pomaga zapobiegać atakom typu "odmowa usługi".

MaxExpansionDepth

Pobiera lub ustawia maksymalną głębokość rozszerzenia dla opcji zapytania $expand. Aby wyłączyć sprawdzanie maksymalnej głębokości rozszerzenia, ustaw tę właściwość na wartość 0.

MaxNodeCount

Pobiera lub ustawia maksymalną liczbę węzłów w drzewie składni $filter.

MaxOrderByNodeCount

Pobiera lub ustawia maksymalną liczbę wyrażeń, które mogą być obecne w $orderby.

MaxSkip

Pobiera lub ustawia maksymalną wartość $skip, którą klient może zażądać.

MaxTop

Pobiera lub ustawia maksymalną wartość $top, którą klient może zażądać.

PageSize

Pobiera lub ustawia maksymalną liczbę wyników zapytania do wysłania z powrotem do klientów.

Metody

ApplyQuery(IQueryable, ODataQueryOptions)

Stosuje zapytanie do danego zapytania IQueryable na podstawie zapytania przychodzącego z ustawień identyfikatora URI i zapytania. Domyślnie implementacja obsługuje $top, $skip, $orderby i $filter. Zastąpij tę metodę, aby wykonać dodatkową kompozycję zapytania zapytania.

ApplyQuery(Object, ODataQueryOptions)

Stosuje zapytanie do danej jednostki na podstawie zapytania przychodzącego z identyfikatora URI i ustawień zapytania.

CreateErrorResponse(String, Exception)

Utwórz odpowiedź o błędzie.

GetModel(Type, HttpRequest, ActionDescriptor)

Pobiera model EDM dla danego typu i żądania. Zastąpij tę metodę, aby dostosować model EDM używany do wykonywania zapytań.

GetModel(Type, HttpRequestMessage, HttpActionDescriptor)

Pobiera model EDM dla danego typu i żądania. Zastąpij tę metodę, aby dostosować model EDM używany do wykonywania zapytań.

OnActionExecuted(ActionExecutedContext)

Wykonuje kompozycję zapytania po wykonaniu akcji. Najpierw próbuje pobrać element IQueryable z zwracanego komunikatu odpowiedzi. Następnie sprawdza poprawność zapytania z identyfikatora URI na podstawie ustawień walidacji w pliku EnableQueryAttribute. Na koniec odpowiednio zastosuje zapytanie i zresetuj je z powrotem w komunikacie odpowiedzi.

OnActionExecuted(HttpActionExecutedContext)

Wykonuje kompozycję zapytania po wykonaniu akcji. Najpierw próbuje pobrać element IQueryable z zwracanego komunikatu odpowiedzi. Następnie sprawdza poprawność zapytania z identyfikatora URI na podstawie ustawień walidacji w pliku EnableQueryAttribute. Na koniec odpowiednio zastosuje zapytanie i zresetuj je z powrotem w komunikacie odpowiedzi.

OnActionExecuting(ActionExecutingContext)

Ta klasa definiuje atrybut, który można zastosować do akcji w celu włączenia wykonywania zapytań przy użyciu składni zapytania OData. Aby uniknąć przetwarzania nieoczekiwanych lub złośliwych zapytań, użyj ustawień weryfikacji, EnableQueryAttribute aby zweryfikować zapytania przychodzące. Aby uzyskać więcej informacji, odwiedź stronę http://go.microsoft.com/fwlink/?LinkId=279712.

ValidateQuery(HttpRequest, ODataQueryOptions)

Weryfikuje zapytanie OData w żądaniu przychodzącym. Domyślnie implementacja zgłasza wyjątek, jeśli zapytanie zawiera nieobsługiwane parametry zapytania. Zastąpij tę metodę, aby wykonać dodatkową walidację zapytania.

ValidateQuery(HttpRequestMessage, ODataQueryOptions)

Weryfikuje zapytanie OData w żądaniu przychodzącym. Domyślnie implementacja zgłasza wyjątek, jeśli zapytanie zawiera nieobsługiwane parametry zapytania. Zastąpij tę metodę, aby wykonać dodatkową walidację zapytania.

Dotyczy