MethodExpression Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Provides a way to specify a custom LINQ query that is defined in a method.
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
- Inheritance
Examples
The following example shows how to search the ListPrice field of the Products table in the AdventureWorks database for products that have a list price of 400 or more. This example shows how to create a custom LINQ query in a method in page code and how to invoke the method in the 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;
}
The following example shows how to call the method in the page.
<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>
Remarks
The QueryExtender control supports custom LINQ queries. You can define a custom LINQ query in a method and use the MethodExpression filter option to invoke the query in the QueryExtender control.
The method that contains the custom LINQ query must meet the following criteria:
The method must be static (
Shared
in Visual Basic). The first parameter must be an IQueryable<T> or IEnumerable<T> object. The method can have more than one parameter.The return value cannot change the IQueryable<T> or IEnumerable<T> type that is queried.
The MethodExpression searches for the method that contains the query in the following order:
If a TypeName property is specified in the QueryExtender control, the MethodExpression object looks for the method in the specified type.
If the data source implements IDynamicDataSource, the method looks for the method on the context type (DataContext or ObjectContext object.)
The method looks for the method in a template control, in the base class for the page, or in a user control.
The MethodExpression class is like the CustomExpression class except that the method expression is executed in response to a method call, and the custom expression is executed in response to an event.
Constructors
MethodExpression() |
Initializes a new instance of the MethodExpression class. |
Properties
Context |
Gets the HttpContext instance of the owner control. (Inherited from DataSourceExpression) |
DataSource |
Gets the data source object that is associated with the owner control. (Inherited from DataSourceExpression) |
IgnoreIfNotFound |
Gets or sets a value that indicates whether the expression should be ignored. |
IsTrackingViewState |
Gets a value that indicates whether a data source expression object is tracking its view state changes. (Inherited from DataSourceExpression) |
MethodName |
Gets or sets the name of the method that contains a custom LINQ query. |
Owner |
Gets the owner control. (Inherited from DataSourceExpression) |
Parameters |
Gets the parameters that are associated with this DataSourceExpression object. (Inherited from ParameterDataSourceExpression) |
TypeName |
Gets or sets the class whose method contains the custom query. |
ViewState |
Gets an instance of the StateBag class that contains the current view state information. (Inherited from DataSourceExpression) |
Methods
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetQueryable(IQueryable) |
Resolves the expression by using the specified IQueryable object. |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
LoadViewState(Object) |
Loads the state of the values in the ParameterDataSourceExpression object that must be persisted. (Inherited from ParameterDataSourceExpression) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
SaveViewState() |
Saves the current view state of the ParameterDataSourceExpression object. (Inherited from ParameterDataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
Executes the expression by using the specified owner control, context, and data source. (Inherited from ParameterDataSourceExpression) |
SetDirty() |
Marks the DataSourceExpression object so that its state will be saved in view state. (Inherited from DataSourceExpression) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
TrackViewState() |
Tracks view-state changes of the ParameterDataSourceExpression object so that the changes can be stored in the StateBag object for the object. (Inherited from ParameterDataSourceExpression) |
Explicit Interface Implementations
IStateManager.IsTrackingViewState |
When implemented by a class, gets a value that indicates whether a data source expression object is tracking its view state changes. (Inherited from DataSourceExpression) |
IStateManager.LoadViewState(Object) |
When implemented by a class, loads the previously saved view state of the data source expression object. (Inherited from DataSourceExpression) |
IStateManager.SaveViewState() |
When implemented by a class, saves the current view state of the DataSourceExpression object. (Inherited from DataSourceExpression) |
IStateManager.TrackViewState() |
When implemented by a class, tracks view state changes of the DataSourceExpression object so that the changes can be stored in the StateBag object for the data source expression object. (Inherited from DataSourceExpression) |