QueryableFilterUserControl.GetQueryable(IQueryable) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém o objeto transformado IQueryable do objeto de origem 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
Parâmetros
- source
- IQueryable
O objeto de origem IQueryable.
Devoluções
O objeto transformado IQueryable a partir do objeto de origem IQueryable .
Exemplos
Este método é implementado para transformar o objeto de origem IQueryable no objeto alvo IQueryable . Exemplos de IQueryable expressões que pode querer implementar incluem ordem por, intervalo ou pesquisa.
O exemplo seguinte mostra como implementar o GetQueryable método para um filtro booleano derivado de 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
Observações
Deve implementar este método se derivar um controlo a partir de QueryableFilterUserControl.