2014-10-26 59 views
0

使用ODataController在一對多或多對多的關係中,如何獲取子實體的孩子。odata 4多對多關係船

例如在OData的4樣品服務在這裏:

https://github.com/OData/ODataSamples/blob/master/Scenarios/TripPin/src/webapi/ODataSamples.WebApiService/Controllers/PeopleController.cs

我需要知道如何實現這樣的:

public class PeopleController : ODataController 
{ 
    ... 

    [ODataRoute("People({key})/Trips/PlanItems)] 
    public IQuerable<PlanItems> GetPlanItems([FromODataUri] string key]) 
} 

這意味着我要檢索的所有PlanItems人。

不幸的是,所有的方法來實現[ODataRoute("People({key})/Trips({tripId})/PlanItems)]只有

回答

0

的URL約定.../People(key)/Trips/PlanItems是無效的,你可以從錯誤消息中看到,如果你嘗試「請求URI無效。由於該段‘旅行’是指集合,它必須是請求URI中的最後一個段,或者它必須後跟一個可以綁定到它的函數或操作,否則所有中間段都必須引用單個資源。「所以替代方案是使用URL .../People(key)/Trips?$expand=PlanItems

+0

我知道我只能通過使用動作或函數來獲取PlanItems。 $ expand不會自行返回PlanItems。有沒有其他的方式來獲得PlanItems沒有行動? – 2014-10-29 14:44:23