MethodExpression Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет способ указания пользовательского запроса LINQ, который определяется в методе.
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
- Наследование
Примеры
В следующем примере показано, как выполнить поиск в поле ListPrice таблицы Products в базе данных AdventureWorks для продуктов с ценовой категорией 400 или более. В этом примере показано, как создать пользовательский запрос LINQ в методе в коде страницы и как вызвать метод в элементе QueryExtender управления .
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;
}
В следующем примере показано, как вызвать метод на странице.
<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>
Комментарии
Элемент QueryExtender управления поддерживает пользовательские запросы LINQ. Вы можете определить пользовательский запрос LINQ в методе и использовать MethodExpression параметр фильтра для вызова запроса в элементе QueryExtender управления .
Метод, содержащий пользовательский запрос LINQ, должен соответствовать следующим критериям:
Метод должен быть статическим (
Shared
в Visual Basic). Первым параметром IQueryable<T> должен быть объект или IEnumerable<T> . Метод может иметь несколько параметров.Возвращаемое значение не может изменить IQueryable<T> запрашиваемый тип или IEnumerable<T> .
Выполняет MethodExpression поиск метода, содержащего запрос в следующем порядке:
TypeName Если свойство указано в элементе QueryExtender управления , MethodExpression объект ищет метод указанного типа.
Если источник данных реализует IDynamicDataSource, метод ищет метод в типе контекста (DataContext или ObjectContext объекте).
Метод ищет метод в элементе управления шаблоном, в базовом классе страницы или в пользовательском элементе управления.
Класс MethodExpression похож на класс , CustomExpression за исключением того, что выражение метода выполняется в ответ на вызов метода, а пользовательское выражение выполняется в ответ на событие.
Конструкторы
MethodExpression() |
Инициализирует новый экземпляр класса MethodExpression. |
Свойства
Context |
Получает экземпляр HttpContext элемента-владельца. (Унаследовано от DataSourceExpression) |
DataSource |
Получает объект источника данных, связанный с элементом-владельцем. (Унаследовано от DataSourceExpression) |
IgnoreIfNotFound |
Получает или задает значение, которое указывает, должно ли выражение быть проигнорировано. |
IsTrackingViewState |
Получает значение, указывающее, отслеживает ли объект выражения источника данных изменения в своем состоянии представления. (Унаследовано от DataSourceExpression) |
MethodName |
Получает или задает имя метода, содержащего настраиваемый запрос LINQ. |
Owner |
Получает элемент-владелец. (Унаследовано от DataSourceExpression) |
Parameters |
Получает параметры, связанные с данным объектом DataSourceExpression. (Унаследовано от ParameterDataSourceExpression) |
TypeName |
Получает или задает класс, метод которого содержит пользовательский запрос. |
ViewState |
Получает экземпляр класса StateBag, содержащий сведения о текущем состоянии представления. (Унаследовано от DataSourceExpression) |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetQueryable(IQueryable) |
Разрешает выражение, используя заданный объект IQueryable. |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
LoadViewState(Object) |
Загружает в объект ParameterDataSourceExpression состояние значений, которое необходимо сохранить. (Унаследовано от ParameterDataSourceExpression) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
SaveViewState() |
Сохраняет текущее состояние просмотра объекта ParameterDataSourceExpression. (Унаследовано от ParameterDataSourceExpression) |
SetContext(Control, HttpContext, IQueryableDataSource) |
Выполняет выражение, используя заданные элемент-владелец, контекст и источник данных. (Унаследовано от ParameterDataSourceExpression) |
SetDirty() |
Помечает объект DataSourceExpression для сохранения его состояния в состоянии просмотра. (Унаследовано от DataSourceExpression) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TrackViewState() |
Отслеживает изменения состояния просмотра объекта ParameterDataSourceExpression, позволяя сохранять их в объекте StateBag для этого объекта. (Унаследовано от ParameterDataSourceExpression) |
Явные реализации интерфейса
IStateManager.IsTrackingViewState |
Будучи реализован классом, получает значение, указывающее, отслеживает ли объект выражения источника данных изменения в своем состоянии представления. (Унаследовано от DataSourceExpression) |
IStateManager.LoadViewState(Object) |
Будучи реализован классом, загружает ранее сохраненное состояние представления объекта выражения источника данных. (Унаследовано от DataSourceExpression) |
IStateManager.SaveViewState() |
Будучи реализован классом, сохраняет текущее состояние просмотра объекта DataSourceExpression. (Унаследовано от DataSourceExpression) |
IStateManager.TrackViewState() |
Будучи реализован классом, отслеживает изменения состояния представления объекта DataSourceExpression, позволяя сохранять их в объекте StateBag для объекта выражения источника данных. (Унаследовано от DataSourceExpression) |