Partager via


MethodExpression Classe

Définition

Fournit un moyen de spécifier une requête LINQ personnalisée qui est définie dans une méthode.

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
Héritage

Exemples

L’exemple suivant montre comment rechercher dans le champ ListPrice de la table Products de la base de données AdventureWorks des produits dont le prix de liste est supérieur ou égal à 400. Cet exemple montre comment créer une requête LINQ personnalisée dans une méthode dans un code de page et comment appeler la méthode dans le QueryExtender contrôle .

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;  

    }  

L’exemple suivant montre comment appeler la méthode dans la page .

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

Remarques

Le QueryExtender contrôle prend en charge les requêtes LINQ personnalisées. Vous pouvez définir une requête LINQ personnalisée dans une méthode et utiliser l’option MethodExpression de filtre pour appeler la requête dans le QueryExtender contrôle .

La méthode qui contient la requête LINQ personnalisée doit répondre aux critères suivants :

  • La méthode doit être statique (Shared en Visual Basic). Le premier paramètre doit être un IQueryable<T> objet ou IEnumerable<T> . La méthode peut avoir plusieurs paramètres.

  • La valeur de retour ne peut pas modifier le IQueryable<T> type ou IEnumerable<T> interrogé.

Recherche MethodExpression la méthode qui contient la requête dans l’ordre suivant :

  1. Si une TypeName propriété est spécifiée dans le QueryExtender contrôle, l’objet MethodExpression recherche la méthode dans le type spécifié.

  2. Si la source de données implémente IDynamicDataSource, la méthode recherche la méthode sur le type de contexte (DataContext ou ObjectContext objet.)

  3. La méthode recherche la méthode dans un contrôle de modèle, dans la classe de base de la page ou dans un contrôle utilisateur.

La MethodExpression classe est similaire à la CustomExpression classe , sauf que l’expression de méthode est exécutée en réponse à un appel de méthode, et l’expression personnalisée est exécutée en réponse à un événement.

Constructeurs

MethodExpression()

Initialise une nouvelle instance de la classe MethodExpression.

Propriétés

Context

Obtient l'instance HttpContext du contrôle propriétaire.

(Hérité de DataSourceExpression)
DataSource

Obtient l'objet source de données associé au contrôle propriétaire.

(Hérité de DataSourceExpression)
IgnoreIfNotFound

Obtient ou définit une valeur qui indique si l'expression doit être ignorée.

IsTrackingViewState

Obtient une valeur qui indique si un objet expression de source de données effectue le suivi des modifications apportées à son état d'affichage.

(Hérité de DataSourceExpression)
MethodName

Obtient ou définit le nom de la méthode qui contient une requête LINQ personnalisée.

Owner

Obtient le contrôle propriétaire.

(Hérité de DataSourceExpression)
Parameters

Obtient les paramètres associés à cet objet DataSourceExpression.

(Hérité de ParameterDataSourceExpression)
TypeName

Obtient ou définit la classe dont la méthode contient la requête personnalisée.

ViewState

Obtient une instance de la classe StateBag qui contient les informations sur l'état d'affichage actuel.

(Hérité de DataSourceExpression)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetQueryable(IQueryable)

Résout l'expression en utilisant l'objet IQueryable spécifié.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
LoadViewState(Object)

Charge l'état des valeurs de l'objet ParameterDataSourceExpression qui doivent être persistantes.

(Hérité de ParameterDataSourceExpression)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
SaveViewState()

Enregistre l'état d'affichage actuel de l'objet ParameterDataSourceExpression.

(Hérité de ParameterDataSourceExpression)
SetContext(Control, HttpContext, IQueryableDataSource)

Exécute l'expression à l'aide du contrôle propriétaire, du contexte et de la source de données spécifiés.

(Hérité de ParameterDataSourceExpression)
SetDirty()

Marque l'objet DataSourceExpression afin que son état soit enregistré dans l'état d'affichage.

(Hérité de DataSourceExpression)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TrackViewState()

Suit les modifications d'état d'affichage apportées à l'objet ParameterDataSourceExpression afin de les stocker dans l'objet StateBag pour l'objet.

(Hérité de ParameterDataSourceExpression)

Implémentations d’interfaces explicites

IStateManager.IsTrackingViewState

En cas d'implémentation par une classe, obtient une valeur qui indique si un objet expression de source de données effectue le suivi des modifications de son état d'affichage.

(Hérité de DataSourceExpression)
IStateManager.LoadViewState(Object)

En cas d'implémentation par une classe, charge l'état d'affichage précédemment enregistré de l'objet expression de source de données.

(Hérité de DataSourceExpression)
IStateManager.SaveViewState()

En cas d'implémentation par une classe, enregistre l'état d'affichage actuel de l'objet DataSourceExpression.

(Hérité de DataSourceExpression)
IStateManager.TrackViewState()

En cas d'implémentation par une classe, suit les modifications apportées à l'état d'affichage de l'objet DataSourceExpression afin que les modifications puissent être stockées dans l'objet StateBag pour l'objet expression de source de données.

(Hérité de DataSourceExpression)

S’applique à