Как я могу запросить с помощью ODATA наличие отношений между двумя объектами? - PullRequest
2 голосов
/ 03 апреля 2011

Есть ли способ написать запрос ODATA (то есть, используя URL-адрес ODATA), который проверяет наличие связи между двумя экземплярами сущности?

Представьте, что у меня есть два типа сущностей в службе ODATA: Person и Project. Представьте, что я определил отношения между многими (что-то вроде Person's Project). У меня есть первичный ключ (ID) каждого Лица и Проекта, и я хочу знать, владеет ли Лицо Проектом.

Я могу выяснить, учитывая Лицо, как получить все Проекты, принадлежащие этому человеку, но это, в общем случае, вернет намного больше данных, чем я хочу (и возникнут проблемы с производительностью в других подобных сценариях). Можно ли как-нибудь запросить сами отношения?

Мой сервер использует WCF и Entity Framework 4.0 в ASP.NET. Мой клиент HTML и JQuery работает в браузере.

Если нет способа написать запрос отношения, есть ли лучший способ для чего-то подобного расширить службу ODATA с помощью специального метода для проверки этого?

Спасибо!

David

1 Ответ

1 голос
/ 03 апреля 2011

Я думаю, вы можете просто назвать что-то вроде: ODataService.svc/Persons(1)/Projects(5). Это попытается вернуть Project с Id = 5, относящимся к Person с Id = 2, потому что Persons в этом случае является установленным объектом, а Projects является свойством навигации по объекту Person. Если связь существует, вы получите запись. Если он не существует, вы получите что-то вроде Ресурс не найден .

...