EF4 STE include-path .... исключить-путь? - PullRequest
3 голосов
/ 21 февраля 2011

Контекст: шаблон репозитория, WCF, WPF / SL

В моем репозитории объектов с самообследованием мне нужно явно загрузить некоторые связанные свойства для правильной обработки запроса.Это не включений, запрошенных клиентом, и я хотел бы избавиться от них, чтобы поддерживать сетевой трафик резонансным.Мое решение на данный момент таково:

  1. Запрос получения
  2. Загрузка включает в себя необходимое для ответа на запрос
  3. Выполнение запроса
  4. Создание временного IEnumerable
  5. Итерации 4) и загрузите все элементы снова, на этот раз с помощью include-пути, запрошенного только из клиентского приложения
  6. возврат объектов через WCF

Я хотел бы сделатьthis:

  1. Запрос приема
  2. Загрузка всех включений (инфраструктура плюс запрос клиента)
  3. Выполнение запроса
  4. Выгрузка «Инфраструктура» включает
  5. вернуть сущности через WCF

    Как правильно это сделать?

Спасибо, Армин

1 Ответ

0 голосов
/ 27 мая 2013

Как насчет отложенной загрузки и правильных объектов ответа DTO?

  1. WCF возвращает пользовательский ордер или GetOrderResponse (Contracts.Order)
  2. Загрузка заказа из EntityModel через репозиторий (только заказ)
  3. Использовать автоматический преобразователь для отображения EntityModel.Order => Contracts.Order

Результат: загружены только соответствующие свойства внутри Contracts.Order:

Ex. Contracts.Order Число OrderDetails (=> Только это свойство загружается из-за отложенной загрузки, потому что оно отображается)

Если вы создаете SOA или веб-сервис, не позволяйте клиенту определять графики загрузки. Если клиенту необходимо указать графики загрузки, рассмотрите возможность развертывания модели с использованием служб данных WCF, это прекрасно работает.

Возможно, вы могли бы построить две системы: одну SOA и одну (только для чтения) Data Service.

...