Udostępnij za pośrednictwem


QueryableFilterUserControl.GetQueryable(IQueryable) Metoda

Definicja

Pobiera przekształcony IQueryable obiekt z IQueryable obiektu źródłowego.

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

Parametry

source
IQueryable

Obiekt źródłowy IQueryable .

Zwraca

IQueryable

Przekształcony IQueryable obiekt z IQueryable obiektu źródłowego.

Przykłady

Ta metoda jest zaimplementowana w celu przekształcenia IQueryable obiektu źródłowego w IQueryable obiekt docelowy. Przykłady IQueryable wyrażeń, które można zaimplementować, obejmują order by, Range lub Search.

Poniższy przykład pokazuje, jak zaimplementować GetQueryable metodę dla filtru logicznego pochodnego od 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  

Uwagi

Należy zaimplementować tę metodę, jeśli pochodny jest formant QueryableFilterUserControl .

Dotyczy