2015-10-15 108 views
0

我已經能夠在我的C#API中爲Azure移動服務使用Expand屬性來展開子對象,並且效果很好。展開查詢Azure移動服務給兒童的兒童

然而,子對象也有一個子對象,我希望能夠得到頂級項目時使用。

也就是說,我查詢的表項,其中有一個屬性「子類別」,但子類對象也有一個屬性「ParentCategory」。

我希望能夠填充物兩級下來,但是似乎$擴大查詢將只在桌子上的直接性工作被查詢。

有沒有辦法得到我想要的東西?最終,我想要做的是當我顯示所有項目的列表時,在表格中顯示子類別和父類別。現在,我只能看到該子類別,因爲該子類別的父屬性爲空。

我想也許添加ParentCategoryId和ParentCategory對象的數據對象的定義,但是這似乎不正確的,因爲我會的,而不是讓它通過子類別屬性鏈接到手動維護誠信,...

任何想法?

回答

2

這聽起來像你需要做一個遞歸查詢,這與通用表表達式處理。我會這樣做的方式是在SQL中創建一個包含每個項目的ParentCategory和SubCategory的視圖。然後,我的搜索可以輕鬆地定位到ParentCategory或SubCategory。

您可以檢查出分層查詢這裏的一篇文章:https://en.wikipedia.org/wiki/Hierarchical_and_recursive_queries_in_SQL

雖然技術文件的Oracle DB,你還可以瞭解如何SQL服務器(和SQL Azure的)這個位置處理:https://msdn.microsoft.com/en-us/library/ms186243.aspx

然後你會寫你的表控制器來訪問視圖。

+0

沒關係啊,這聽起來有希望的,但如果我理解你正確,你是說,對於這個觀點,我要建,我不能與湛藍的移動服務客戶端做,必須建立一個自定義的API調用來獲取我需要的結果。那會是一個正確的假設嗎? – SelAromDotNet

+0

不,您可以使用常規的表格控制器。在你的數據庫上下文中,你應該連接到視圖而不是表格。以下是一篇介紹它的文章:https://visualstudiomagazine.com/blogs/tool-tracker/2015/02/leverage-views-in-entity-framework.aspx –