Шаблон простого репозитория Вопрос: Как эффективно выполнять запросы к нескольким репозиториям? - PullRequest
1 голос
/ 27 октября 2010

Если вы возвращаете IList (T) из своего хранилища ...

Как вы могли бы эффективно создавать SQL-запросы, когда вы объединяете данные вместе?

ТРЕБУЕТСЯ ли необходимость предоставлять IQueryable / IEnumerableструктуры данных для этих методов?Для меня это плохо.

Или

Мне не хватает какой-то базовой концепции?

Прямо сейчас у меня есть такие методы хранилища, как:

IList<T> Get( Expression(...) filter, Expression(...) sort, int skip, int take)

где null указывает на Get All.Это работает очень хорошо, пока я не захочу найти все Заказы из набора Клиентов, не выполняя запрос для каждого клиента.

1 Ответ

1 голос
/ 27 октября 2010

Это не требуется для выставления IQueryable<T>, но если вы этого не сделаете, вы столкнетесь с точно проблемой, которую вы описываете: вы не можете далее составлять запросы .

Одним из решений является размещение уровня обслуживания объектов перед хранилищем. Сервисный уровень EF-невежественен, но может выполнять проекции LINQ. Проецирование в LINQ приводит к созданию составного запроса к БД.

У меня есть демо здесь .

...