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.
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:
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 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) |