Поделиться через


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 поиск метода, содержащего запрос в следующем порядке:

  1. TypeName Если свойство указано в элементе QueryExtender управления , MethodExpression объект ищет метод указанного типа.

  2. Если источник данных реализует IDynamicDataSource, метод ищет метод в типе контекста (DataContext или ObjectContext объекте).

  3. Метод ищет метод в элементе управления шаблоном, в базовом классе страницы или в пользовательском элементе управления.

Класс 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)

Применяется к