QueryableFilterUserControl.GetQueryable(IQueryable) Metodo
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.
Ottiene l'oggetto IQueryable trasformato dall'oggetto IQueryable di origine.
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
Parametri
- source
- IQueryable
Oggetto IQueryable di origine.
Restituisce
Oggetto IQueryable trasformato dall'oggetto IQueryable di origine.
Esempio
Questo metodo viene implementato per trasformare l'oggetto di origine IQueryable nell'oggetto di destinazione IQueryable . Esempi di IQueryable espressioni che è possibile implementare includono l'ordine, l'intervallo o la ricerca.
Nell'esempio seguente viene illustrato come implementare il GetQueryable metodo per un filtro booleano derivato da 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
Commenti
È necessario implementare questo metodo se si deriva un controllo da QueryableFilterUserControl.