EnableQueryAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.ActionFilterAttributeEnableQueryAttribute
- 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. |