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


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)

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