Partager via


EnableQueryAttribute Classe

Définition

Cette classe définit un attribut qui peut s'appliquer à une action permettant de formuler une requête à l'aide de la syntaxe de requête OData. Pour éviter de traiter des requêtes inattendues ou malveillantes, utilisez les paramètres de validation activés pour EnableQueryAttribute valider les requêtes entrantes. Pour plus d’informations, consultez 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
Héritage
System.Web.Http.Filters.ActionFilterAttribute
EnableQueryAttribute
Héritage
EnableQueryAttribute
Attributs

Constructeurs

EnableQueryAttribute()

Active une action du contrôleur pour la prise en charge des paramètres de requête OData.

Propriétés

AllowedArithmeticOperators

Obtient ou définit une valeur représentant une liste d'opérateurs arithmétiques autorisés, notamment 'add', 'sub', 'mul', 'div', 'mod'.

AllowedFunctions

Obtient ou définit une valeur représentant une liste de fonctions autorisées utilisées dans la requête $filter. Les fonctions prises en charge sont notamment :

AllowedLogicalOperators

Obtient ou définit une valeur représentant une liste d'opérateurs logiques autorisés, comme 'eq', 'ne', 'gt', 'ge', 'lt', 'le', 'and', 'or', 'not'.

AllowedOrderByProperties

Obtient ou définit une chaîne avec une liste de noms de propriétés séparés par des virgules. Le résultat requêtable (queryable) ne peut être trié que par les propriétés définies dans cette liste.

Notez que par défaut, cette chaîne a la valeur Null, ce qui signifie qu'elle peut être triée selon n'importe quelle propriété.

Par exemple, si vous définissez cette valeur sur une chaîne null ou vide, nous autorisons l’ordre du résultat interrogeable par toutes les propriétés. Définir cette valeur à « Name » équivaut à autoriser le tri du résultat requêtable selon la propriété Name.

AllowedQueryOptions

Obtient ou définit les paramètres de la requête qui sont autorisés dans les requêtes.

EnableConstantParameterization

Obtient ou définit une valeur indiquant si les constantes doivent être paramétrées. Le paramétrage des constantes doit se traduire par de meilleures performances avec Entity Framework.

EnableCorrelatedSubqueryBuffering

Obtient ou définit une valeur indiquant si les requêtes avec navigations développées doivent être formulées pour encourager la mise en mémoire tampon des résultats de sous-requête corrélés. La mise en mémoire tampon des résultats de sous-requête corrélés peut réduire le nombre de requêtes de N + 1 à 2 en mettant en mémoire tampon les résultats de la sous-requête.

EnsureStableOrdering

Obtient ou définit une valeur indiquant si la composition de la requête doit, au besoin, modifier la requête d'origine pour assurer un ordre de tri stable.

HandleNullPropagation

Obtient ou définit une valeur indiquant comment la propagation null doit être gérée lors de la composition de requête.

HandleReferenceNavigationPropertyExpandFilter

Respectez $filter à l’intérieur $expand de la propriété de navigation hors collection. La propriété développée est renseignée uniquement lorsque le filtre prend la valeur true. Ce paramètre est false par défaut.

MaxAnyAllExpressionDepth

Obtient ou définit la profondeur maximale de n'importe quel élément ou de tous les éléments imbriqués dans la requête. Cette limite permet d'éviter les attaques par déni de service.

MaxExpansionDepth

Obtient ou définit la profondeur d'expansion maximum pour l'option de requête $expand. Pour désactiver la vérification de la profondeur d'expansion maximale, définissez cette propriété à 0.

MaxNodeCount

Obtient ou définit le nombre maximal de nœuds à l’intérieur de l’arborescence de syntaxe $filter.

MaxOrderByNodeCount

Obtient ou définit le nombre maximum d'expressions pouvant être présentes dans $orderby.

MaxSkip

Obtient ou définit la valeur max. de $skip qu'un client peut demander.

MaxTop

Obtient ou définit la valeur max. de $top qu'un client peut demander.

PageSize

Obtient ou définit le nombre maximum de résultats de requête à renvoyer aux clients.

Méthodes

ApplyQuery(IQueryable, ODataQueryOptions)

Applique la requête à IQueryable sur la base de la requête entrante à partir de l'URI et des paramètres de requête. Par défaut, l'implémentation prend en charge $top, $skip, $orderby et $filter. Ignorer cette méthode pour effectuer une composition de requête supplémentaire de la requête.

ApplyQuery(Object, ODataQueryOptions)

Applique la requête à l’entité donnée en fonction de la requête entrante provenant des paramètres d’URI et de requête.

CreateErrorResponse(String, Exception)

Créez une réponse d’erreur.

GetModel(Type, HttpRequest, ActionDescriptor)

Obtient le modèle EDM pour le type et la demande donnés. Remplacez cette méthode pour personnaliser le modèle EDM utilisé pour l’interrogation.

GetModel(Type, HttpRequestMessage, HttpActionDescriptor)

Obtient le modèle EDM pour la requête et le type donnés. Ignorer cette méthode pour personnaliser le modèle EDM utilisé pour la requête.

OnActionExecuted(ActionExecutedContext)

Effectue la composition de requête après l'exécution de l'action. Il essaie d'abord de récupérer IQueryable à partir du message de réponse de retour. Il valide ensuite la requête à partir de l’URI en fonction des paramètres de validation sur EnableQueryAttribute. Enfin, il applique la requête de façon appropriée, et la redéfinit sur le message de réponse.

OnActionExecuted(HttpActionExecutedContext)

Effectue la composition de requête après l'exécution de l'action. Il essaie d'abord de récupérer IQueryable à partir du message de réponse de retour. Il valide ensuite la requête à partir de l’URI en fonction des paramètres de validation sur EnableQueryAttribute. Enfin, il applique la requête de façon appropriée, et la redéfinit sur le message de réponse.

OnActionExecuting(ActionExecutingContext)

Cette classe définit un attribut qui peut s'appliquer à une action permettant de formuler une requête à l'aide de la syntaxe de requête OData. Pour éviter de traiter des requêtes inattendues ou malveillantes, utilisez les paramètres de validation activés pour EnableQueryAttribute valider les requêtes entrantes. Pour plus d’informations, consultez http://go.microsoft.com/fwlink/?LinkId=279712.

ValidateQuery(HttpRequest, ODataQueryOptions)

Valide la requête OData dans la demande entrante. Par défaut, l'implémentation lève une exception si la requête contient des paramètres de requête non pris en charge. Ignorer cette méthode pour effectuer une validation supplémentaire de la requête.

ValidateQuery(HttpRequestMessage, ODataQueryOptions)

Valide la requête OData dans la demande entrante. Par défaut, l'implémentation lève une exception si la requête contient des paramètres de requête non pris en charge. Ignorer cette méthode pour effectuer une validation supplémentaire de la requête.

S’applique à