QueryableFilterUserControl.GetQueryable(IQueryable) Methode

Definition

Ruft das transformierte IQueryable Objekt aus dem Quellobjekt IQueryable 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

Das transformierte IQueryable Objekt aus dem Quellobjekt IQueryable .

Beispiele

Diese Methode wird implementiert, um das Quellobjekt IQueryable in das Zielobjekt IQueryable zu transformieren. Beispiele für IQueryable Ausdrücke, die Sie möglicherweise implementieren möchten, sind Reihenfolge nach Bereich oder Suche.

Das folgende Beispiel zeigt, wie die GetQueryable Methode für einen booleschen Filter implementiert wird, der von 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 QueryableFilterUserControl.

Gilt für: