Freigeben über


EnableQueryAttribute Klasse

Definition

Diese Klasse definiert ein Attribut, das auf eine Aktion angewendet werden kann, um Abfragen mithilfe der OData-Abfragesyntax zu aktivieren. Um die Verarbeitung unerwarteter oder böswilliger Abfragen zu vermeiden, verwenden Sie die Validierungseinstellungen für, EnableQueryAttribute um eingehende Abfragen zu überprüfen. Weitere Informationen finden Sie unter 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
Vererbung
System.Web.Http.Filters.ActionFilterAttribute
EnableQueryAttribute
Vererbung
EnableQueryAttribute
Attribute

Konstruktoren

EnableQueryAttribute()

Ermöglicht, dass eine Controlleraktion OData-Abfrageparameter unterstützt.

Eigenschaften

AllowedArithmeticOperators

Ruft einen Wert ab, der eine Liste der zulässigen arithmetischen Operatoren einschließlich add, sub, mul, div, mod darstellt, bzw. legt diesen fest.

AllowedFunctions

Ruft einen Wert ab, der eine Liste der zulässigen in der $filter-Abfrage verwendeten Funktionen darstellt, bzw. legt diesen fest. Unter anderem werden die folgenden Funktionen unterstützt:

AllowedLogicalOperators

Ruft einen Wert ab, der eine Liste der zulässigen logischen Operatoren einschließlich eq, ne, gt, ge, lt, le, and, or, not darstellt, bzw. legt diesen fest.

AllowedOrderByProperties

Ruft eine Zeichenfolge mit durch Trennzeichen getrennten Liste von Eigenschaftennamen ab oder legt diese fest. Das abfragbare Ergebnis kann nur nach diesen in dieser Liste definierten Eigenschaften sortiert sein.

Beachten Sie, dass diese Zeichenfolge standardmäßig null ist. Dies bedeutet, dass sie nach einer beliebigen Eigenschaft sortiert sein kann.

Wenn Sie diesen Wert beispielsweise auf NULL oder auf eine leere Zeichenfolge festlegen, bedeutet dies, dass die Sortierung des abfragbaren Ergebnisses nach beliebigen Eigenschaften zulässig ist. Wenn dieser Wert auf Name festgelegt wird, bedeutet dies, dass das abfragbare Ergebnis nur nach der Eigenschaft Name sortiert werden darf.

AllowedQueryOptions

Ruft die Abfrageparameter ab, die in Abfragen zulässig sind, oder legt sie fest.

EnableConstantParameterization

Ruft einen Wert ab, der angibt, ob Konstanten parameterisiert werden sollen, oder legt diesen Wert fest. Das Parameterisieren von Konstanten führt zu einer optimierten Leistung mit Entity Framework.

EnableCorrelatedSubqueryBuffering

Ruft einen Wert ab, der angibt, ob Abfragen mit erweiterten Navigationen formuliert werden sollen, um korrelierte Unterabfrageergebnisse zu puffern, oder legt diesen fest. Durch Pufferung korrelierter Unterabfrageergebnisse kann die Anzahl der Abfragen von N + 1 auf 2 reduziert werden, indem Ergebnisse aus der Unterabfrage gepuffert werden.

EnsureStableOrdering

Ruft einen Wert ab, der angibt, ob die Abfragekomposition die ursprüngliche Abfrage bei Bedarf ändern soll, um eine stabile Sortierreihenfolge sicherzustellen, bzw. legt diesen Wert fest.

HandleNullPropagation

Ruft einen Wert ab, der angibt, wie Nullweitergabe während der Abfragekomposition verarbeitet werden soll, bzw. legt diesen Wert fest.

HandleReferenceNavigationPropertyExpandFilter

Berücksichtigen Sie $filter innerhalb $expand der Nichtsammlungsnavigationseigenschaft. Die erweiterte Eigenschaft wird nur aufgefüllt, wenn der Filter als true ausgewertet wird. Diese Einstellung ist standardmäßig false.

MaxAnyAllExpressionDepth

Ruft die maximale Tiefe der geschachtelten Any- oder All-Elemente in der Abfrage ab bzw. legt diese fest. Dieser Grenzwert hilft, Denial-of-Service-Angriffe zu verhindern.

MaxExpansionDepth

Ruft die maximale Erweiterungstiefe für die Abfrageoption $expand ab oder legt sie fest. Legen Sie diese Eigenschaft zum Deaktivieren der Überprüfung der maximalen Erweiterungstiefe auf 0 fest.

MaxNodeCount

Ruft die maximale Anzahl von Knoten innerhalb der $filter Syntaxstruktur ab oder legt diese fest.

MaxOrderByNodeCount

Ruft die maximale Anzahl von Ausdrücken ab (bzw. legt diese fest), die in $orderby vorhanden sein können.

MaxSkip

Ruft den maximalen Wert von $skip ab, den ein Client anfordern kann, oder legt ihn fest.

MaxTop

Ruft den maximalen Wert von $top ab, den ein Client anfordern kann, oder legt ihn fest.

PageSize

Ruft die maximale Anzahl von Abfrageergebnissen ab, die zurück an Clients gesendet werden sollen, bzw. legt diesen Wert fest.

Methoden

ApplyQuery(IQueryable, ODataQueryOptions)

Wendet die Abfrage auf das angegebene IQueryable-Objekt basierend auf der eingehenden Abfrage aus dem URI und den Abfrageeinstellungen an. Standardmäßig unterstützt die Implementierung $top, $skip, $orderby und $filter. Setzen Sie diese Methode außer Kraft, um zusätzliche Abfragekomposition der Abfrage auszuführen.

ApplyQuery(Object, ODataQueryOptions)

Wendet die Abfrage basierend auf eingehenden Abfragen von URI und Abfrageeinstellungen auf die angegebene Entität an.

CreateErrorResponse(String, Exception)

Erstellen Sie eine Fehlerantwort.

GetModel(Type, HttpRequest, ActionDescriptor)

Ruft das EDM-Modell für den angegebenen Typ und die angegebene Anforderung ab. Überschreiben Sie diese Methode, um das für Abfragen verwendete EDM-Modell anzupassen.

GetModel(Type, HttpRequestMessage, HttpActionDescriptor)

Ruft das EDM-Modell für den angegebenen Typ und die Anforderung ab. Setzen Sie diese Methode außer Kraft, um das zum Abfragen verwendete EDM-Modell anzupassen.

OnActionExecuted(ActionExecutedContext)

Führt die Abfragekomposition aus, nachdem die Aktion ausgeführt wurde. Zuerst wird versucht, IQueryable aus der zurückgegebenen Antwortnachricht abzurufen. Anschließend wird die Abfrage von URI basierend auf den Validierungseinstellungen für EnableQueryAttributeüberprüft. Schließlich wird die Abfrage entsprechend angewendet und für die Antwortnachricht zurückgesetzt.

OnActionExecuted(HttpActionExecutedContext)

Führt die Abfragekomposition aus, nachdem die Aktion ausgeführt wurde. Zuerst wird versucht, IQueryable aus der zurückgegebenen Antwortnachricht abzurufen. Anschließend wird die Abfrage von URI basierend auf den Validierungseinstellungen für EnableQueryAttributeüberprüft. Schließlich wird die Abfrage entsprechend angewendet und für die Antwortnachricht zurückgesetzt.

OnActionExecuting(ActionExecutingContext)

Diese Klasse definiert ein Attribut, das auf eine Aktion angewendet werden kann, um Abfragen mithilfe der OData-Abfragesyntax zu aktivieren. Um die Verarbeitung unerwarteter oder böswilliger Abfragen zu vermeiden, verwenden Sie die Validierungseinstellungen für, EnableQueryAttribute um eingehende Abfragen zu überprüfen. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlink/?LinkId=279712.

ValidateQuery(HttpRequest, ODataQueryOptions)

Überprüft die OData-Abfrage in der eingehenden Anforderung. Die Implementierung löst standardmäßig eine Ausnahme aus, wenn die Abfrage nicht unterstützte Abfrageparameter enthält. Setzen Sie diese Methode außer Kraft, um zusätzliche Überprüfungen der Abfrage auszuführen.

ValidateQuery(HttpRequestMessage, ODataQueryOptions)

Überprüft die OData-Abfrage in der eingehenden Anforderung. Die Implementierung löst standardmäßig eine Ausnahme aus, wenn die Abfrage nicht unterstützte Abfrageparameter enthält. Setzen Sie diese Methode außer Kraft, um zusätzliche Überprüfungen der Abfrage auszuführen.

Gilt für: