Compartir a través de


EnableQueryAttribute Clase

Definición

Esta clase define un atributo que se puede aplicar a una acción para habilitar las consultas mediante la sintaxis de consulta de OData. Para evitar el procesamiento de consultas inesperadas o malintencionadas, use la configuración de validación en EnableQueryAttribute para validar las consultas entrantes. Para más información, visite 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
Herencia
System.Web.Http.Filters.ActionFilterAttribute
EnableQueryAttribute
Herencia
EnableQueryAttribute
Atributos

Constructores

EnableQueryAttribute()

Habilita una acción de controlador para admitir los parámetros de las consultas OData.

Propiedades

AllowedArithmeticOperators

Obtiene o establece un valor que representa una lista de operadores aritméticos permitidos, como 'add', 'sub', 'mul', 'div' y 'mod'.

AllowedFunctions

Obtiene o establece un valor que representa una lista de funciones permitidas que se usan en la consulta $filter. Las funciones compatibles incluyen lo siguiente:

AllowedLogicalOperators

Obtiene o establece un valor que representa una lista de operadores lógicos permitidos, como 'eq', 'ne', 'gt', 'ge', 'lt', 'le', 'and', 'or', 'not'.

AllowedOrderByProperties

Obtiene o establece una cadena con una lista separada por comas de nombres de propiedad. El resultado consultable solo se puede ordenar mediante las propiedades que se definen en esta lista.

De forma predeterminada, esta cadena es nula, lo que significa que se puede usar cualquier propiedad para ordenar.

Por ejemplo, al establecer este valor en null o una cadena vacía, se permite ordenar del resultado consultable por cualquier propiedad. Al definirlo como "Name", solo permitimos que el resultado consultable se ordene con la propiedad Name.

AllowedQueryOptions

Obtiene o establece los parámetros de consulta que se permiten en las consultas.

EnableConstantParameterization

Obtiene o define un valor que indica si las constantes se deben parametrizar. La parametrización de constantes mejoraría el rendimiento con Entity Framework.

EnableCorrelatedSubqueryBuffering

Obtiene o establece un valor que indica si se deben formular consultas con navegaciones expandidas para fomentar que los resultados de subconsultas correlacionados se almacenen en búfer. El almacenamiento en búfer de los resultados de la subconsulta correlacionada puede reducir el número de consultas de N + 1 a 2 mediante el almacenamiento en búfer de los resultados de la subconsulta.

EnsureStableOrdering

Obtiene o define un valor que indica si la composición de la consulta debe alterar la consulta original cuando sea necesario para garantizar un orden estable.

HandleNullPropagation

Obtiene o define un valor que indica cómo se debe controlar la propagación nula durante la composición de la consulta.

HandleReferenceNavigationPropertyExpandFilter

Respeta $filter dentro de $expand de la propiedad de navegación que no sea de colección. La propiedad expandida solo se rellena cuando el filtro se evalúa como true. Esta configuración es false de forma predeterminada.

MaxAnyAllExpressionDepth

Obtiene o define la profundidad máxima de los elementos Any o All anidados dentro de la consulta. Este límite contribuye a evitar ataques por denegación de servicio.

MaxExpansionDepth

Obtiene o establece la profundidad de expansión máxima para la opción de consulta $expand. Para deshabilitar la comprobación de la profundidad de expansión máxima, establezca esta propiedad en 0.

MaxNodeCount

Obtiene o establece el número máximo de nodos dentro del árbol de sintaxis $filter.

MaxOrderByNodeCount

Obtiene o establece el número máximo de expresiones que se pueden presentar en el elemento $orderby.

MaxSkip

Obtiene o define el valor máximo de $skip que puede solicitar un cliente.

MaxTop

Obtiene o define el valor máximo de $top que puede solicitar un cliente.

PageSize

Obtiene o define el número máximo de resultados de consulta que se devuelve a los clientes.

Métodos

ApplyQuery(IQueryable, ODataQueryOptions)

Aplica la consulta al elemento IQueryable determinado a partir de la configuración de consulta y consulta entrante de URI. De forma predeterminada, la implementación admite $top, $skip, $orderby y $filter. Invalide este método para realizar una composición de consulta adicional de la consulta.

ApplyQuery(Object, ODataQueryOptions)

Aplica la consulta a la entidad especificada en función de la consulta entrante de la configuración de URI y consulta.

CreateErrorResponse(String, Exception)

Cree una respuesta de error.

GetModel(Type, HttpRequest, ActionDescriptor)

Obtiene el modelo EDM para el tipo y la solicitud especificados. Invalide este método para personalizar el modelo EDM usado para realizar consultas.

GetModel(Type, HttpRequestMessage, HttpActionDescriptor)

Obtiene el modelo EDM para el tipo y la solicitud especificados. Invalide este método para personalizar el modelo de EDM que se usa para la consulta.

OnActionExecuted(ActionExecutedContext)

Realiza la composición de la consulta después de ejecutar la acción. En primer lugar, intenta recuperar IQueryable del mensaje de respuesta devuelto. A continuación, valida la consulta del URI en función de la configuración de validación en EnableQueryAttribute. Finalmente, aplica la consulta adecuadamente y la devuelve al mensaje de respuesta.

OnActionExecuted(HttpActionExecutedContext)

Realiza la composición de la consulta después de ejecutar la acción. En primer lugar, intenta recuperar IQueryable del mensaje de respuesta devuelto. A continuación, valida la consulta del URI en función de la configuración de validación en EnableQueryAttribute. Finalmente, aplica la consulta adecuadamente y la devuelve al mensaje de respuesta.

OnActionExecuting(ActionExecutingContext)

Esta clase define un atributo que se puede aplicar a una acción para habilitar las consultas mediante la sintaxis de consulta de OData. Para evitar el procesamiento de consultas inesperadas o malintencionadas, use la configuración de validación en EnableQueryAttribute para validar las consultas entrantes. Para más información, visite http://go.microsoft.com/fwlink/?LinkId=279712.

ValidateQuery(HttpRequest, ODataQueryOptions)

Valida la consulta de OData de la solicitud entrante. De forma predeterminada, la implementación lanza una excepción si la consulta contiene parámetros de consulta incompatibles. Invalide este método para realizar una validación adicional de la consulta.

ValidateQuery(HttpRequestMessage, ODataQueryOptions)

Valida la consulta de OData de la solicitud entrante. De forma predeterminada, la implementación lanza una excepción si la consulta contiene parámetros de consulta incompatibles. Invalide este método para realizar una validación adicional de la consulta.

Se aplica a