MethodExpression Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Consente di specificare una query LINQ personalizzata 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 cercare nel database AdventureWorks il campo ListPrice della tabella Products 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 pagina 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 (
Sharedin 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.
Cerca MethodExpression il metodo che contiene la query nell'ordine seguente:
Se nel controllo viene specificata QueryExtender una TypeName proprietà, l'oggetto MethodExpression cerca il metodo nel tipo specificato.
Se l'origine dati implementa IDynamicDataSource, il metodo cerca il metodo sul tipo di contesto (DataContext o ObjectContext oggetto).
Il metodo cerca il metodo in un controllo modello, nella classe di 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
| Nome | Descrizione |
|---|---|
| MethodExpression() |
Inizializza una nuova istanza della classe MethodExpression. |
Proprietà
| Nome | Descrizione |
|---|---|
| Context |
Ottiene l'istanza 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 origine dati sta monitorando le modifiche apportate allo 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 DataSourceExpression oggetto. (Ereditato da ParameterDataSourceExpression) |
| TypeName |
Ottiene o imposta la classe il cui metodo contiene la query personalizzata. |
| ViewState |
Ottiene un'istanza della StateBag classe che contiene le informazioni sullo stato di visualizzazione corrente. (Ereditato da DataSourceExpression) |
Metodi
| Nome | Descrizione |
|---|---|
| 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 specificato IQueryable . |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| LoadViewState(Object) |
Carica lo stato dei valori nell'oggetto ParameterDataSourceExpression che deve essere salvato in modo permanente. (Ereditato da ParameterDataSourceExpression) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| SaveViewState() |
Salva lo stato di visualizzazione corrente dell'oggetto ParameterDataSourceExpression . (Ereditato da ParameterDataSourceExpression) |
| SetContext(Control, HttpContext, IQueryableDataSource) |
Esegue l'espressione usando 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 le modifiche possano essere archiviate nell'oggetto per l'oggetto StateBag . (Ereditato da ParameterDataSourceExpression) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IStateManager.IsTrackingViewState |
Se implementato da una classe, ottiene un valore che indica se un oggetto espressione origine dati sta monitorando le modifiche dello stato di visualizzazione. (Ereditato da DataSourceExpression) |
| IStateManager.LoadViewState(Object) |
Se implementato da una classe, carica lo stato di visualizzazione salvato in precedenza dell'oggetto espressione origine dati. (Ereditato da DataSourceExpression) |
| IStateManager.SaveViewState() |
Se implementato da una classe, salva lo stato di visualizzazione corrente dell'oggetto DataSourceExpression . (Ereditato da DataSourceExpression) |
| IStateManager.TrackViewState() |
Se implementato da una classe, tiene traccia delle modifiche dello stato di visualizzazione dell'oggetto DataSourceExpression in modo che le modifiche possano essere archiviate nell'oggetto per l'oggetto StateBag espressione origine dati. (Ereditato da DataSourceExpression) |