MethodExpression Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Ofrece una manera de especificar una consulta LINQ personalizada que está definida en un método.
public ref class MethodExpression : System::Web::UI::WebControls::Expressions::ParameterDataSourceExpression
public class MethodExpression : System.Web.UI.WebControls.Expressions.ParameterDataSourceExpression
type MethodExpression = class
inherit ParameterDataSourceExpression
Public Class MethodExpression
Inherits ParameterDataSourceExpression
- Herencia
Ejemplos
En el ejemplo siguiente se muestra cómo buscar en el campo ListPrice de la tabla Products de la base de datos AdventureWorks para productos que tienen un precio de lista de 400 o más. En este ejemplo se muestra cómo crear una consulta LINQ personalizada en un método en el código de página y cómo invocar el método en el QueryExtender control .
Public Shared Function FilterStandardPrice(ByVal query As _
IQueryable(Of Product)) As IQueryable(Of Product)
Return From p In query _
Where p.ListPrice >= 400 _
Select p
End Function
public static IQueryable<Product>
FilterStandardPrice(IQueryable<Product> query)
{
return from p in query
where p.ListPrice >= 400
select p;
}
En el ejemplo siguiente se muestra cómo llamar al método en la página.
<html>
<head runat="server">
<title>Custom Filter</title>
</head>
<body>
<form id="form1" runat="server">
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="AdventureworksDataContext" EntityTypeName=""
TableName="Products">
</asp:LinqDataSource>
<asp:QueryExtender ID="QueryExtender1" runat="server"
TargetControlID="LinqDataSource1">
<asp:MethodExpression MethodName="FilterStandardPrice" >
</asp:MethodExpression>
</asp:QueryExtender>
<asp:GridView ID="GridView1" runat="server"
DataSourceID="LinqDataSource1"
DataKeyNames="ProductID"
</asp:GridView>
</form>
</body>
</html>
Comentarios
El QueryExtender control admite consultas LINQ personalizadas. Puede definir una consulta LINQ personalizada en un método y usar la MethodExpression opción de filtro para invocar la consulta en el QueryExtender control.
El método que contiene la consulta LINQ personalizada debe cumplir los siguientes criterios:
El método debe ser estático (
Shared
en Visual Basic). El primer parámetro debe ser un IQueryable<T> objeto o IEnumerable<T> . El método puede tener más de un parámetro.El valor devuelto no puede cambiar el IQueryable<T> tipo o IEnumerable<T> que se consulta.
Busca MethodExpression el método que contiene la consulta en el orden siguiente:
Si se especifica una TypeName propiedad en el QueryExtender control , el MethodExpression objeto busca el método en el tipo especificado.
Si el origen de datos implementa IDynamicDataSource, el método busca el método en el tipo de contexto (DataContext o ObjectContext object).
El método busca el método en un control de plantilla, en la clase base de la página o en un control de usuario.
La MethodExpression clase es similar a la CustomExpression clase, excepto que la expresión de método se ejecuta en respuesta a una llamada de método y la expresión personalizada se ejecuta en respuesta a un evento.
Constructores
MethodExpression() |
Inicializa una nueva instancia de la clase MethodExpression. |
Propiedades
Context |
Obtiene la instancia de HttpContext del control propietario. (Heredado de DataSourceExpression) |
DataSource |
Obtiene el objeto de origen de datos asociado al control propietario. (Heredado de DataSourceExpression) |
IgnoreIfNotFound |
Obtiene o establece un valor que indica si debe omitirse la expresión. |
IsTrackingViewState |
Obtiene un valor que indica si un objeto de expresión de origen de datos realiza un seguimiento de los cambios en su estado de vista. (Heredado de DataSourceExpression) |
MethodName |
Obtiene o establece el nombre del método que contiene una consulta LINQ personalizada. |
Owner |
Obtiene el control propietario. (Heredado de DataSourceExpression) |
Parameters |
Obtiene los parámetros asociados a este objeto DataSourceExpression. (Heredado de ParameterDataSourceExpression) |
TypeName |
Obtiene o establece la clase cuyo método contiene la consulta personalizada. |
ViewState |
Obtiene una instancia de la clase StateBag que contiene información sobre el estado de vista actual. (Heredado de DataSourceExpression) |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetQueryable(IQueryable) |
Resuelve la expresión utilizando el objeto IQueryable especificado. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
LoadViewState(Object) |
Carga el estado de los valores del objeto ParameterDataSourceExpression que debe almacenarse. (Heredado de ParameterDataSourceExpression) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
SaveViewState() |
Guarda el estado de vista actual del objeto ParameterDataSourceExpression. (Heredado de ParameterDataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
Ejecuta la expresión usando el control propietario, el contexto y el origen de datos especificados. (Heredado de ParameterDataSourceExpression) |
SetDirty() |
Marca el objeto DataSourceExpression de modo que su estado se guarde en el estado de vista. (Heredado de DataSourceExpression) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
TrackViewState() |
Realiza un seguimiento de los cambios en el estado de vista del objeto ParameterDataSourceExpression para poder almacenarlos en el objeto StateBag del objeto. (Heredado de ParameterDataSourceExpression) |
Implementaciones de interfaz explícitas
IStateManager.IsTrackingViewState |
Cuando se implementa mediante una clase, obtiene un valor que indica si un objeto de expresión de origen de datos realiza un seguimiento de los cambios en su estado de vista. (Heredado de DataSourceExpression) |
IStateManager.LoadViewState(Object) |
Cuando se implementa mediante una clase, carga el estado de vista anteriormente guardado del objeto de expresión de origen de datos. (Heredado de DataSourceExpression) |
IStateManager.SaveViewState() |
Cuando lo implementa una clase, guarda el estado de vista actual del objeto DataSourceExpression. (Heredado de DataSourceExpression) |
IStateManager.TrackViewState() |
Cuando se implementa mediante una clase, realiza un seguimiento de los cambios en el estado de vista del objeto DataSourceExpression para que puedan almacenarse en el objeto StateBag del objeto de expresión de origen de datos. (Heredado de DataSourceExpression) |