У меня есть хранилище по следующему методу:
IEnumerable<T> FindAll<TRelated>(Specification<T> specification,
Expression<Func<T, TRelated>> fetchExpression);
Мне нужно передать более одного выражения. Я думал об изменении подписи на:
IEnumerable<T> FindAll<TRelated>(Specification<T> specification,
IEnumerable<Expression<Func<T, TRelated>>> fetchExpression);
- Возможно ли это?
- Как создать, скажем, массив выражений для передачи в этот метод?
В настоящее время я вызываю метод из моего сервисного слоя следующим образом:
var products = productRepository.FindAll(specification,p => p.Variants);
Но я бы хотел, например, передать p => p.Variants
и p => p.Reviews
. А затем в репозитории я хотел бы пройтись по выражению и добавить их в запрос.
Для получения дополнительной информации о том, почему я это делаю, см. Сообщение в блоге Бена Фостера о Стремительная загрузка с помощью NHibernate .