Share via


QueryableFilterUserControl.GetQueryable(IQueryable) Methode

Definition

Ruft das transformierte IQueryable-Objekt aus dem IQueryable-Quellobjekt ab.

public:
 abstract System::Linq::IQueryable ^ GetQueryable(System::Linq::IQueryable ^ source);
public abstract System.Linq.IQueryable GetQueryable (System.Linq.IQueryable source);
abstract member GetQueryable : System.Linq.IQueryable -> System.Linq.IQueryable
Public MustOverride Function GetQueryable (source As IQueryable) As IQueryable

Parameter

source
IQueryable

Das IQueryable-Quellobjekt.

Gibt zurück

IQueryable

Das transformierte IQueryable-Objekt aus dem IQueryable-Quellobjekt.

Beispiele

Diese Methode wird implementiert, um das Quell IQueryable Objekt in das Ziel IQueryable Objekt umzuwandeln. Beispiele für IQueryable Ausdrücke, die Sie implementieren können, sind Order by, Range oder Search.

Im folgenden Beispiel wird gezeigt, wie die- GetQueryable Methode für einen booleschen Filter implementiert wird, der von abgeleitet wird QueryableFilterUserControl .

public override IQueryable GetQueryable(IQueryable source) {  
    if (String.IsNullOrEmpty(DropDownList1.SelectedValue)) {  
        return source;  
    }  

    bool value = Convert.ToBoolean(DropDownList1.SelectedValue);  

    ParameterExpression parameterExpression =   
        Expression.Parameter(source.ElementType, "item");  
    Expression body = BuildQueryBody(  
        parameterExpression, value);  

    LambdaExpression lambda = Expression.Lambda(body,   
        parameterExpression);  
    MethodCallExpression whereCall = Expression.Call(  
        typeof(Queryable),   
        "Where",   
        new Type[] { source.ElementType },   
        source.Expression, Expression.Quote(lambda));  
    return source.Provider.CreateQuery(whereCall);  
}  
Public Overloads Overrides Function GetQueryable(ByVal source As IQueryable) As IQueryable   
    If [String].IsNullOrEmpty(DropDownList1.SelectedValue) Then   
        Return source   
    End If   

    Dim value As Boolean = Convert.ToBoolean(DropDownList1.SelectedValue)   

    Dim parameterExpression As ParameterExpression = Expression.Parameter(source.ElementType, "item")   
    Dim body As Expression = BuildQueryBody(parameterExpression, value)   

    Dim lambda As LambdaExpression = Expression.Lambda(body, parameterExpression)   
    Dim whereCall As MethodCallExpression = Expression.[Call](GetType(Queryable), "Where", _  
         New Type() {source.ElementType}, source.Expression, Expression.Quote(lambda))   
    Return source.Provider.CreateQuery(whereCall)   
End Function  

Hinweise

Sie müssen diese Methode implementieren, wenn Sie ein Steuerelement von ableiten QueryableFilterUserControl .

Gilt für