odata 4多对多的关系

时间:2014-10-26 21:01:34

标签: odata asp.net-web-api2

使用ODataController在一对多对多或多对多的关系中,我如何获得子实体的子女。

例如,在OData 4 Sample Service中:

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])
}

这意味着我想检索一个人的所有PlanItem。

不幸的是,所有方法仅实现[ODataRoute("People({key})/Trips({tripId})/PlanItems)]

1 个答案:

答案 0 :(得分:0)

URL约定.../People(key)/Trips/PlanItems无效,如果您尝试“请求URI无效,您可以从错误消息中看到。由于段'Trips'指的是一个集合,这必须是最后一个段在请求URI中,或者必须后跟一个可以绑定到它的函数或动作,否则所有中间段都必须引用单个资源。“因此,另一种方法是使用网址.../People(key)/Trips?$expand=PlanItems