다음을 통해 공유


QueryableFilterUserControl.GetQueryable(IQueryable) 메서드

정의

소스 IQueryable 개체에서 변환된 IQueryable 개체를 가져옵니다.

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

매개 변수

source
IQueryable

소스 IQueryable 개체입니다.

반환

IQueryable

소스 IQueryable 개체에서 변환된 IQueryable 개체입니다.

예제

이 메서드는 소스를 변환 하려면 구현 IQueryable 개체를 대상 IQueryable 개체입니다. 예가 IQueryable 식을 구현 하는 범위에서 순서를 포함 하거나 검색 합니다.

다음 예제에서는 구현 하는 방법을 보여 줍니다 합니다 GetQueryable 에서 파생 되는 부울 필터에 대 한 메서드 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  

설명

컨트롤을 파생 하는 경우이 메서드를 구현 해야 QueryableFilterUserControl합니다.

적용 대상