Предполагая, что у вас есть реализация IRepository<MyClass>
, вы должны вызвать GetMany
следующим образом:
IRepository<MyClass> repository = ...;
IEnumerable<MyClass> filtered = repository.GetMany(
mc => true);
Обратите внимание на mc => true
лямбда-выражение .mc
в этом случае - параметр (в данном случае, типа MyClass
), переданный в Expression<Func<T, bool>>
, который будет оцениваться (можно было бы предположить через IQueryable<T>
) и mc.SomeProperty == someValue
- это выражение, которое возвращает true
, который является вторым параметром типа Expression<Func<T, bool>>
.
Получив filtered
, вы можете использовать предложение order by
(или OrderBy
метод расширения , они одинаковы) для сортировки результатов, например так:
var filteredAndOrdered = filtered.OrderBy(mc => mc.MyProperty);
Обратите внимание, что GetMany
возвращает IEnumerable<T>
, не и IQueryable<T>
;это важно, если ваш результирующий набор большой, так как упорядочение произойдет на клиенте, а не будет отправлено на сервер.
Для операции OrderBy
это может быть дорого, потому что оно должно пройтився последовательность (на заказ) перед возвратом первого результата.