Udostępnij za pośrednictwem


MethodExpression Klasa

Definicja

Umożliwia określenie niestandardowego zapytania LINQ zdefiniowanego w metodzie.

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
Dziedziczenie

Przykłady

W poniższym przykładzie pokazano, jak przeszukać pole ListPrice tabeli Products w bazie danych AdventureWorks dla produktów, które mają cenę 400 lub więcej. W tym przykładzie pokazano, jak utworzyć niestandardowe zapytanie LINQ w metodzie w kodzie strony i jak wywołać metodę w kontrolce 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;  

    }  

W poniższym przykładzie pokazano, jak wywołać metodę na stronie.

<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>  

Uwagi

Kontrolka QueryExtender obsługuje niestandardowe zapytania LINQ. Niestandardowe zapytanie LINQ można zdefiniować w metodzie i użyć opcji filtru MethodExpression , aby wywołać zapytanie w kontrolce QueryExtender .

Metoda zawierająca niestandardowe zapytanie LINQ musi spełniać następujące kryteria:

  • Metoda musi być statyczna (Shared w Visual Basic). Pierwszy parametr musi być obiektem IQueryable<T> lub IEnumerable<T> . Metoda może mieć więcej niż jeden parametr.

  • Wartość zwracana nie może zmienić IQueryable<T> typu lub IEnumerable<T> , którego dotyczy zapytanie.

Wyszukuje MethodExpression metodę zawierającą zapytanie w następującej kolejności:

  1. TypeName Jeśli właściwość jest określona w kontrolceQueryExtender, MethodExpression obiekt szuka metody w określonym typie.

  2. Jeśli źródło danych implementuje IDynamicDataSourcemetodę , metoda szuka metody w typie kontekstu (DataContext lub ObjectContext obiekcie).

  3. Metoda wyszukuje metodę w kontrolce szablonu, w klasie bazowej strony lub w kontrolce użytkownika.

Klasa MethodExpression jest jak CustomExpression klasa, z tą różnicą, że wyrażenie metody jest wykonywane w odpowiedzi na wywołanie metody, a wyrażenie niestandardowe jest wykonywane w odpowiedzi na zdarzenie.

Konstruktory

MethodExpression()

Inicjuje nowe wystąpienie klasy MethodExpression.

Właściwości

Context

HttpContext Pobiera wystąpienie kontrolki właściciela.

(Odziedziczone po DataSourceExpression)
DataSource

Pobiera obiekt źródła danych skojarzony z kontrolką właściciela.

(Odziedziczone po DataSourceExpression)
IgnoreIfNotFound

Pobiera lub ustawia wartość wskazującą, czy wyrażenie powinno być ignorowane.

IsTrackingViewState

Pobiera wartość wskazującą, czy obiekt wyrażenia źródła danych śledzi zmiany stanu widoku.

(Odziedziczone po DataSourceExpression)
MethodName

Pobiera lub ustawia nazwę metody zawierającej niestandardowe zapytanie LINQ.

Owner

Pobiera kontrolę właściciela.

(Odziedziczone po DataSourceExpression)
Parameters

Pobiera parametry skojarzone z tym DataSourceExpression obiektem.

(Odziedziczone po ParameterDataSourceExpression)
TypeName

Pobiera lub ustawia klasę, której metoda zawiera zapytanie niestandardowe.

ViewState

Pobiera wystąpienie StateBag klasy zawierającej bieżące informacje o stanie widoku.

(Odziedziczone po DataSourceExpression)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetQueryable(IQueryable)

Rozpoznaje wyrażenie przy użyciu określonego IQueryable obiektu.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
LoadViewState(Object)

Ładuje stan wartości w ParameterDataSourceExpression obiekcie, który musi być utrwalany.

(Odziedziczone po ParameterDataSourceExpression)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
SaveViewState()

Zapisuje bieżący stan ParameterDataSourceExpression widoku obiektu.

(Odziedziczone po ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Wykonuje wyrażenie przy użyciu określonej kontrolki właściciela, kontekstu i źródła danych.

(Odziedziczone po ParameterDataSourceExpression)
SetDirty()

Oznacza obiekt tak DataSourceExpression , aby jego stan został zapisany w stanie widoku.

(Odziedziczone po DataSourceExpression)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrackViewState()

Śledzi zmiany ParameterDataSourceExpression stanu widoku obiektu, aby zmiany mogły być przechowywane w StateBag obiekcie dla obiektu.

(Odziedziczone po ParameterDataSourceExpression)

Jawne implementacje interfejsu

IStateManager.IsTrackingViewState

Po zaimplementowaniu przez klasę pobiera wartość wskazującą, czy obiekt wyrażenia źródła danych śledzi zmiany stanu widoku.

(Odziedziczone po DataSourceExpression)
IStateManager.LoadViewState(Object)

Po zaimplementowaniu przez klasę ładuje wcześniej zapisany stan widoku obiektu wyrażenia źródła danych.

(Odziedziczone po DataSourceExpression)
IStateManager.SaveViewState()

Po zaimplementowaniu przez klasę zapisuje bieżący stan DataSourceExpression widoku obiektu.

(Odziedziczone po DataSourceExpression)
IStateManager.TrackViewState()

Po zaimplementowaniu przez klasę śledzi zmiany DataSourceExpression stanu widoku obiektu, dzięki czemu zmiany mogą być przechowywane w StateBag obiekcie dla obiektu wyrażenia źródła danych.

(Odziedziczone po DataSourceExpression)

Dotyczy