0

Я использую службу данных WCF и узел ASP.NET, где у меня есть модель данных сущности для базы данных рецептов. Объект «Рецепт» подключен к «Ингредиент», который подключен к «Единице». В моем клиенте (приложение Windows 8 RT) я пытаюсь запросить услугу, чтобы вытащить все ингредиенты в рецепт, и блок, связанный с ингредиентом.Выбор нескольких таблиц с DataServiceQuery

личные данные R.juliemrEntities;

приватные рецепты DataServiceCollection;

var query = (DataServiceQuery) data.Recipes.Expand ("Ingredients");

С этим запросом я получаю рецепты и их ингредиенты, но мне не удается перейти к третьей таблице или получить удержание единиц через ингредиенты.

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

ответ

1

Для «двойного расширения» используйте что-то вроде этого. Второй вызов разворачивания содержит строку, подобную пути, для третьего объекта.

data.Recipes.Expand("Ingredients").Expand("Ingredients/Unit"); 
+0

работает как шарм! Спасибо :) –

0

Если вы посмотрите на http://www.odata.org/documentation/odata-version-3-0/odata-version-3-0-core-protocol 10.2.3.1.3 в $ расширения системы Query Option. вы обнаружите, что $ expand = Ingredients/Unit означает расширение обоих ингредиентов и единицы для каждого ингредиента.

Таким образом, вы можете использовать только один расширить

data.Recipes.Expand("Ingredients/Unit"); 
Смежные вопросы