Можно ли с помощью WCF Data Services использовать команду $ expand для объединенных таблиц - PullRequest
0 голосов
/ 09 ноября 2010

Я пытаюсь сделать что-то довольно простое для понимания с помощью служб данных WCF, но не могу найти, как это сделать.

У меня есть 3 таблицы Customer, Product и объединенная таблица Customer_Product, связывающая две другие таблицы (базовое отношение n к n): Клиент <= Customer_Product => Продукт

Я хочу получить клиента и его продукты в одном запросе, поэтому я хотел бы сделать что-то вроде:

/Service.svc/Customers(23)?$expand=Products

Но это говорит о том, что в таблице Customer нет свойства навигации по продуктам.

Единственный вариант, который я нашел, это сделать:

/Service.svc/Customers(23)?$expand=Customer_Product

, а затем позвоните еще раз, чтобы получить сведения о продукте.

Есть ли чистый способ сделать это?

Заранее большое спасибо.

1 Ответ

1 голос
/ 10 ноября 2010

Служба «многие ко многим» обычно моделируется службой, скрывая таблицу соединений (если единственное, что она хранит, это отношения, и в них нет данных). Если вы используете EF в сервисе, это должно быть довольно легко сделать. Если вам по какой-то причине необходимо предоставить таблицу соединений, вы можете выполнить запрос, например:

/Service.svc/Customers(23)?$expand=Customer_Product/Product

(расширения могут быть на несколько уровней глубиной). Конечно, чтение результатов будет немного сложнее из-за двух уровней, но вы получите нужные данные.

...