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 выражений, которые может потребоваться реализовать, включают порядок по, диапазон или поиск.
В следующем примере показано, как реализовать 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 .