Sdílet prostřednictvím


EnableQueryAttribute Třída

Definice

Tato třída definuje atribut, který lze použít na akci a povolit dotazování pomocí syntaxe dotazu OData. Abyste se vyhnuli zpracování neočekávaných nebo škodlivých dotazů, ověřte příchozí dotazy pomocí nastavení EnableQueryAttribute ověřování. Další informace najdete na stránce 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
Dědičnost
System.Web.Http.Filters.ActionFilterAttribute
EnableQueryAttribute
Dědičnost
EnableQueryAttribute
Atributy

Konstruktory

EnableQueryAttribute()

Povolí akci kontroleru pro podporu parametrů dotazu OData.

Vlastnosti

AllowedArithmeticOperators

Získá nebo nastaví hodnotu, která představuje seznam povolených aritmetických operátorů, včetně "add", "sub", "mul", "div", "mod".

AllowedFunctions

Získá nebo nastaví hodnotu, která představuje seznam povolených funkcí používaných v dotazu $filter. Mezi podporované funkce patří:

AllowedLogicalOperators

Získá nebo nastaví hodnotu, která představuje seznam povolených logických operátorů, například "eq", "ne", "gt", "ge", "lt", "le", "and", "or", "not".

AllowedOrderByProperties

Získá nebo nastaví řetězec se seznamem názvů vlastností oddělených čárkami. Dotazovatelný výsledek lze řadit pouze podle vlastností definovaných v tomto seznamu.

Poznámka: Ve výchozím nastavení má tento řetězec hodnotu null, což znamená, že se dá řadit podle jakékoli vlastnosti.

Například nastavení této hodnoty na hodnotu null nebo prázdný řetězec znamená, že povolíme řazení dotazovatelného výsledku podle libovolných vlastností. Nastavení této hodnoty na "Název" znamená, že povolíme řazení pouze dotazovatelných výsledků podle vlastnosti Name.

AllowedQueryOptions

Získá nebo nastaví parametry dotazu, které jsou povoleny v dotazech.

EnableConstantParameterization

Získá nebo nastaví hodnotu označující, zda mají být konstanty parametrizovány. Parametrizace konstant by v Entity Frameworku zlepšila výkon.

EnableCorrelatedSubqueryBuffering

Získá nebo nastaví hodnotu označující, zda dotazy s rozšířenými navigacemi by měly být formulovány tak, aby se korelované poddotazové výsledky ukládat do vyrovnávací paměti. Ukládání korelovaných výsledků poddotazů do vyrovnávací paměti může snížit počet dotazů z N + 1 na 2 díky ukládání výsledků z poddotazů do vyrovnávací paměti.

EnsureStableOrdering

Získá nebo nastaví hodnotu označující, zda by složení dotazu mělo změnit původní dotaz, pokud je to nutné k zajištění stabilního pořadí řazení.

HandleNullPropagation

Získá nebo nastaví hodnotu označující, jak by mělo být při sestavování dotazu zpracováno šíření null.

HandleReferenceNavigationPropertyExpandFilter

Respektte $filter uvnitř $expand navigační vlastnosti mimo kolekci. Rozbalená vlastnost se vyplní, jenom když se filtr vyhodnotí jako true. Toto nastavení je ve výchozím nastavení false.

MaxAnyAllExpressionDepth

Získá nebo nastaví maximální hloubku Any nebo Všechny prvky vnořené uvnitř dotazu. Tento limit pomáhá zabránit útokům na dostupnost služby.

MaxExpansionDepth

Získá nebo nastaví maximální hloubku rozšíření pro možnost dotazu $expand. Chcete-li zakázat kontrolu maximální hloubky rozšíření, nastavte tuto vlastnost na hodnotu 0.

MaxNodeCount

Získá nebo nastaví maximální počet uzlů uvnitř stromu syntaxe $filter.

MaxOrderByNodeCount

Získá nebo nastaví maximální počet výrazů, které mohou být přítomny v $orderby.

MaxSkip

Získá nebo nastaví maximální hodnotu $skip, které klient může požadovat.

MaxTop

Získá nebo nastaví maximální hodnotu $top, které klient může požadovat.

PageSize

Získá nebo nastaví maximální počet výsledků dotazu pro odeslání zpět klientům.

Metody

ApplyQuery(IQueryable, ODataQueryOptions)

Použije dotaz na zadaný IQueryable na základě příchozího dotazu z identifikátoru URI a nastavení dotazu. Implementace ve výchozím nastavení podporuje $top, $skip, $orderby a $filter. Přepsat tuto metodu provést další dotaz složení dotazu.

ApplyQuery(Object, ODataQueryOptions)

Použije dotaz na danou entitu na základě příchozího dotazu z identifikátoru URI a nastavení dotazu.

CreateErrorResponse(String, Exception)

Vytvořte chybovou odpověď.

GetModel(Type, HttpRequest, ActionDescriptor)

Získá model EDM pro daný typ a požadavek. Přepsáním této metody můžete přizpůsobit model EDM používaný pro dotazování.

GetModel(Type, HttpRequestMessage, HttpActionDescriptor)

Získá model EDM pro daný typ a požadavek. Přepsáním této metody můžete přizpůsobit model EDM používaný pro dotazování.

OnActionExecuted(ActionExecutedContext)

Provede složení dotazu po provedení akce. Nejprve se pokusí načíst IQueryable z vracející zprávy odpovědi. Potom ověří dotaz z identifikátoru URI na základě nastavení ověřování na EnableQueryAttribute. Nakonec dotaz odpovídajícím způsobem použije a resetuje ho zpět ve zprávě s odpovědí.

OnActionExecuted(HttpActionExecutedContext)

Provede složení dotazu po provedení akce. Nejprve se pokusí načíst IQueryable z vracející zprávy odpovědi. Potom ověří dotaz z identifikátoru URI na základě nastavení ověřování na EnableQueryAttribute. Nakonec dotaz odpovídajícím způsobem použije a resetuje ho zpět ve zprávě s odpovědí.

OnActionExecuting(ActionExecutingContext)

Tato třída definuje atribut, který lze použít na akci a povolit dotazování pomocí syntaxe dotazu OData. Abyste se vyhnuli zpracování neočekávaných nebo škodlivých dotazů, ověřte příchozí dotazy pomocí nastavení EnableQueryAttribute ověřování. Další informace najdete na stránce http://go.microsoft.com/fwlink/?LinkId=279712.

ValidateQuery(HttpRequest, ODataQueryOptions)

Ověří dotaz OData v příchozí žádosti. Ve výchozím nastavení vyvolá implementace výjimku, pokud dotaz obsahuje nepodporované parametry dotazu. Přepsat tuto metodu provést další ověření dotazu.

ValidateQuery(HttpRequestMessage, ODataQueryOptions)

Ověří dotaz OData v příchozí žádosti. Ve výchozím nastavení vyvolá implementace výjimku, pokud dotaz obsahuje nepodporované parametry dotazu. Přepsat tuto metodu provést další ověření dotazu.

Platí pro