Condividi tramite


MethodExpression Classe

Definizione

Fornisce un modo per specificare una query LINQ personalizzata che viene definita in un metodo.

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

Esempio

Nell'esempio seguente viene illustrato come eseguire una ricerca nel campo ListPrice della tabella Products nel database AdventureWorks per i prodotti con un prezzo di listino di 400 o più. In questo esempio viene illustrato come creare una query LINQ personalizzata in un metodo nel codice della QueryExtender tabella e come richiamare il metodo nel controllo .

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;  

    }  

Nell'esempio seguente viene illustrato come chiamare il metodo nella pagina.

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

Commenti

Il QueryExtender controllo supporta query LINQ personalizzate. È possibile definire una query LINQ personalizzata in un metodo e usare l'opzione MethodExpression di filtro per richiamare la query nel QueryExtender controllo .

Il metodo che contiene la query LINQ personalizzata deve soddisfare i criteri seguenti:

  • Il metodo deve essere statico (Shared in Visual Basic). Il primo parametro deve essere un IQueryable<T> oggetto o IEnumerable<T> . Il metodo può avere più di un parametro.

  • Il valore restituito non può modificare il IQueryable<T> tipo o IEnumerable<T> su cui viene eseguita una query.

MethodExpression Cerca il metodo che contiene la query nell'ordine seguente:

  1. Se nel controllo viene specificata QueryExtender una TypeName proprietà, l'oggetto MethodExpression cerca il metodo nel tipo specificato.

  2. Se l'origine dati implementa IDynamicDataSource, il metodo cerca il metodo sul tipo di contesto (DataContext o ObjectContext oggetto).

  3. Il metodo cerca il metodo in un controllo modello, nella classe base per la pagina o in un controllo utente.

La MethodExpression classe è simile alla CustomExpression classe ad eccezione del fatto che l'espressione del metodo viene eseguita in risposta a una chiamata al metodo e l'espressione personalizzata viene eseguita in risposta a un evento.

Costruttori

MethodExpression()

Inizializza una nuova istanza della classe MethodExpression.

Proprietà

Context

Ottiene l'istanza di HttpContext del controllo proprietario.

(Ereditato da DataSourceExpression)
DataSource

Ottiene l'oggetto origine dati associato al controllo proprietario.

(Ereditato da DataSourceExpression)
IgnoreIfNotFound

Ottiene o imposta un valore che indica se l'espressione deve essere ignorata.

IsTrackingViewState

Ottiene un valore che indica se un oggetto espressione dell'origine dati tiene traccia delle modifiche dello stato di visualizzazione.

(Ereditato da DataSourceExpression)
MethodName

Ottiene o imposta il nome del metodo che contiene una query LINQ personalizzata.

Owner

Ottiene il controllo proprietario.

(Ereditato da DataSourceExpression)
Parameters

Ottiene i parametri associati a questo oggetto DataSourceExpression.

(Ereditato da ParameterDataSourceExpression)
TypeName

Ottiene o imposta la classe il cui metodo contiene la query personalizzata.

ViewState

Ottiene un'istanza della classe StateBag che contiene le informazioni sullo stato di visualizzazione corrente.

(Ereditato da DataSourceExpression)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetQueryable(IQueryable)

Risolve l'espressione utilizzando l'oggetto IQueryable specificato.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
LoadViewState(Object)

Carica nell'oggetto ParameterDataSourceExpression lo stato dei valori che devono essere resi persistenti.

(Ereditato da ParameterDataSourceExpression)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
SaveViewState()

Salva lo stato di visualizzazione corrente dell'oggetto ParameterDataSourceExpression.

(Ereditato da ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Esegue l'espressione utilizzando il controllo proprietario, il contesto e l'origine dati specificati.

(Ereditato da ParameterDataSourceExpression)
SetDirty()

Contrassegna l'oggetto DataSourceExpression in modo che il relativo stato venga salvato nello stato di visualizzazione.

(Ereditato da DataSourceExpression)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TrackViewState()

Tiene traccia delle modifiche dello stato di visualizzazione dell'oggetto ParameterDataSourceExpression in modo che possano essere archiviate nell'oggetto StateBag per l'oggetto stesso.

(Ereditato da ParameterDataSourceExpression)

Implementazioni dell'interfaccia esplicita

IStateManager.IsTrackingViewState

Quando implementato da una classe, ottiene un valore che indica se un oggetto espressione dell'origine dati tiene traccia delle modifiche dello stato di visualizzazione.

(Ereditato da DataSourceExpression)
IStateManager.LoadViewState(Object)

Quando implementato da una classe, carica lo stato di visualizzazione precedentemente salvato dell'oggetto espressione dell'origine dati.

(Ereditato da DataSourceExpression)
IStateManager.SaveViewState()

Quando viene implementato da una classe, salva lo stato di visualizzazione corrente dell'oggetto DataSourceExpression.

(Ereditato da DataSourceExpression)
IStateManager.TrackViewState()

Quando implementato da una classe, tiene traccia delle modifiche dello stato di visualizzazione dell'oggetto DataSourceExpression in modo che possano essere archiviate nell'oggetto StateBag per l'oggetto espressione dell'origine dati.

(Ereditato da DataSourceExpression)

Si applica a